我已经解决了一段时间了。.我认为这应该是一件容易的事,但这不是= D
我想做的是,当用户单击组合框时显示组合框的列表,但不是专门在按钮中显示。
任何想法?
提前致谢!
最佳答案
此答案适合问题的标题,但不适合问题本身。 Omer想要触摸一个文本字段并弹出框。
当用户输入文本时,此解决方案将显示弹出窗口。
我在Jens Alfke的cocoabuilder上找到了这个答案。我在这里重新发布了他的代码。谢谢詹斯。
original cocoabuilder post: (http://www.cocoabuilder.com/archive/cocoa)
@interface NSComboBox (MYExpansionAPI)
@property (getter=isExpanded) BOOL expanded;
@end
@implementation NSComboBox (MYExpansionAPI)
- (BOOL) isExpanded
{
id ax = NSAccessibilityUnignoredDescendant(self);
return [[ax accessibilityAttributeValue:
NSAccessibilityExpandedAttribute] boolValue];
}
- (void) setExpanded: (BOOL)expanded
{
id ax = NSAccessibilityUnignoredDescendant(self);
[ax accessibilitySetValue: [NSNumber numberWithBool: expanded]
forAttribute: NSAccessibilityExpandedAttribute];
}
我在
controlTextDidChange:
方法中使用了此代码。- (void) controlTextDidChange:(NSNotification *) aNotification {
NSTextField *textField = [aNotification object];
NSString *value = [textField stringValue];
NSComboBox *box = [self comboBox];
if (value == nil || [value length] == 0) {
if ([box isExpanded]) { [box setExpanded:NO]; }
} else {
if (![box isExpanded]) { [box setExpanded:YES]; }
}
}
关于objective-c - 如何以编程方式打开NSComboBox的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4499262/