1

我有一个带有组合框的 NSAlert,每次它发生变化时我都需要知道它的价值。
在我的 .hi 中实现了NSComboBoxDelegate协议和NSComboBox* comboBox.

在我的 .mi 中有:

[comboBox setDelegate:self];


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

但问题是:
组合框的默认值为 2。例如,如果我将值更改为 6,我的NSLog显示器:ComboBox Value Changed to --> 2
然后,当我将其值更改回 2 时,我的NSLog显示器:ComboBox Value Changed to --> 6
关于这个问题的任何想法?谢谢你。

PS:我尝试了其他NSComboBoxDelegate方法,但它发生了与我上面描述的相同的事情。

4

1 回答 1

1

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

- (void)comboBoxSelectionDidChange:(NSNotification *)notification{
    int x = [[notification.object objectValueOfSelectedItem] intValue];
    NSLog(@"ComboBox Value Changed to --> %i", x);
}
于 2012-05-26T18:10:28.700 回答