NSCombox的comboBoxSelectionDidChange值被延迟

时间:2012-05-26 16:58:48

标签: objective-c xcode macos cocoa combobox

我有一个带有组合框的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方法,但它与我上面描述的相同。

1 个答案:

答案 0 :(得分:1)

更改代码以使用objectValueOfSelectedItem而不是stringValue。

- (void)comboBoxSelectionDidChange:(NSNotification *)notification{
    int x = [[notification.object objectValueOfSelectedItem] intValue];
    NSLog(@"ComboBox Value Changed to --> %i", x);
}