【发布时间】:2015-06-21 07:58:05
【问题描述】:
NSComboBox 中是否有用于项目选择的 IBAction?
我尝试定义 2 个不同的操作 - 一个用于从下拉框中选择的项目,另一个用于输入新值的操作。 这可能吗?
*我正在做一个 Mac 应用程序,而不是 iOS
【问题讨论】:
标签: objective-c cocoa ibaction nscombobox
NSComboBox 中是否有用于项目选择的 IBAction?
我尝试定义 2 个不同的操作 - 一个用于从下拉框中选择的项目,另一个用于输入新值的操作。 这可能吗?
*我正在做一个 Mac 应用程序,而不是 iOS
【问题讨论】:
标签: objective-c cocoa ibaction nscombobox
我相信您可以在您的委托中区分这两个事件,但不能通过IBAction。 NSComboBoxDelegate 协议响应选择器 - (void)comboBoxSelectionDidChange:(NSNotification *)notification。您可以使用它来确定何时从下拉框中选择了一个项目,并使用文本编辑委托选择器- (void)controlTextDidEndEditing:(NSNotification *)aNotification 来确定用户何时直接输入文本。
【讨论】:
所以我将此代码添加到我的 viewController.m:
-(void)comboBoxSelectionDidChange:(NSNotification *)notification{
NSLog(@"comboBoxSelectionDidChange");
}
- (void)controlTextDidEndEditing:(NSNotification *)aNotification{
NSLog(@"controlTextDidEndEditing");
}
然后,将我的组合框“cmbbox”连接到 viewDidLoad 上的委托:
- (void)viewDidLoad {
[super viewDidLoad];
self.cmbbox.delegate = self;
}
最后,将 NSComboBoxDelegate 委托协议添加到 viewController.h 头文件:
@interface ViewController : NSViewController <NSComboBoxDelegate>
【讨论】: