我有一个带有组合框的 NSAlert,我需要知道它每次更改时的值。
在我的.h中,我实现了NSComboBoxDelegate
协议(protocol)和NSComboBox*comboBox
。
在我的.m中,我有:
[comboBox setDelegate:self];
- (void)comboBoxSelectionDidChange:(NSNotification *)notification{
int x = [[comboBox stringValue] intValue];
NSLog(@"ComboBox Value Changed to --> %i", x);
}
但问题是:
组合框的默认值为 2。如果我将该值更改为 6,例如 6,我的 NSLog
显示:ComboBox Value Changed to --> 2
然后,当我将其值更改回 2 时,我的 NSLog
显示:ComboBox Value Changed to --> 6
关于这个问题有什么想法吗?
谢谢。
PS:我尝试过其他 NSComboBoxDelegate
方法,但它发生的情况与我上面描述的相同。
最佳答案
更改代码以使用 objectValueOfSelectedItem 而不是 stringValue。
- (void)comboBoxSelectionDidChange:(NSNotification *)notification{
int x = [[notification.object objectValueOfSelectedItem] intValue];
NSLog(@"ComboBox Value Changed to --> %i", x);
}
关于objective-c - NSCombox的comboBoxSelectionDidChange值被延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10768190/