我有一个带有组合框的NSAlert,每次更改时我都需要知道它的价值。
在我的.h中我实施了NSComboBoxDelegate
协议和NSComboBox* comboBox
。
在我的.m中我有:
[comboBox setDelegate:self];
- (void)comboBoxSelectionDidChange:(NSNotification *)notification{
int x = [[comboBox stringValue] intValue];
NSLog(@"ComboBox Value Changed to --> %i", x);
}
但问题是:
组合框的默认值为2.如果我将值更改为,例如,我的NSLog
显示为ComboBox Value Changed to --> 2
然后,当我将其值更改回2时,我的NSLog
会显示:ComboBox Value Changed to --> 6
关于这个问题的任何想法?
谢谢。
PS:我尝试过其他NSComboBoxDelegate
方法,但它与我上面描述的相同。
答案 0 :(得分:1)
更改代码以使用objectValueOfSelectedItem而不是stringValue。
- (void)comboBoxSelectionDidChange:(NSNotification *)notification{
int x = [[notification.object objectValueOfSelectedItem] intValue];
NSLog(@"ComboBox Value Changed to --> %i", x);
}