NSComboBox - 如何为 2 个不同的组合框实现委托?
NSComboBox - how can I implement a delegate for 2 different comboBoxes?
我已经实现了 NSComboBoxDelegate:
-(void)comboBoxSelectionDidChange:(NSNotification *)notification{
}
- (void)controlTextDidEndEditing:(NSNotification *)aNotification{
}
- (void)comboBoxWillPopUp:(NSNotification *)notification{
}
- (void)comboBoxWillDismiss:(NSNotification *)notification{
}
但我有 2 个组合框 - 具有 2 个不同的功能。
有没有办法知道 运行 上没有哪个组合框并采取相应行动?
或者我必须在外部实现 2 个不同的委托?如果是这样 - 有没有一种简单的方法可以将信息传回我的 viewcontroller?
有没有办法获取有关通知发件人的信息?
你为什么不用标签?您可以将标签 101 分配给其中一个,将标签 102 分配给另一个,然后当他们触发委托时,您只需要一个 if 子句来检查对象的标签。
通知对象([notification object]
或 notification.object
)将是发送通知的组合框。
对于文本更改(controlTextDidEndEditing、controlTextDidChange...),请参见以下示例。
- (void)controlTextDidEndEditing:(NSNotification *)obj {
if ([obj object] == combobox1) {
}
else if ([obj object] == combobox2) {
}
}
至于选择变化,您需要为各个对象创建IBAction连接。
我已经实现了 NSComboBoxDelegate:
-(void)comboBoxSelectionDidChange:(NSNotification *)notification{
}
- (void)controlTextDidEndEditing:(NSNotification *)aNotification{
}
- (void)comboBoxWillPopUp:(NSNotification *)notification{
}
- (void)comboBoxWillDismiss:(NSNotification *)notification{
}
但我有 2 个组合框 - 具有 2 个不同的功能。 有没有办法知道 运行 上没有哪个组合框并采取相应行动?
或者我必须在外部实现 2 个不同的委托?如果是这样 - 有没有一种简单的方法可以将信息传回我的 viewcontroller?
有没有办法获取有关通知发件人的信息?
你为什么不用标签?您可以将标签 101 分配给其中一个,将标签 102 分配给另一个,然后当他们触发委托时,您只需要一个 if 子句来检查对象的标签。
通知对象([notification object]
或 notification.object
)将是发送通知的组合框。
对于文本更改(controlTextDidEndEditing、controlTextDidChange...),请参见以下示例。
- (void)controlTextDidEndEditing:(NSNotification *)obj {
if ([obj object] == combobox1) {
}
else if ([obj object] == combobox2) {
}
}
至于选择变化,您需要为各个对象创建IBAction连接。