objective-c - NSCombox的comboBoxSelectionDidChange值被延迟

标签 objective-c xcode macos cocoa combobox

我有一个带有组合框的 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/

相关文章:

c++ - macOS 版本返回为 10.16,而不是 12.0

iphone - iPhone带小数点计算器教程

objective-c - 在应用程序邮件中预先添加文本 Objective-c

ios - 错误 "Class VCWeakObjectHolder is implemented in both..."使调试 session 崩溃

bash - 什么是 `Cd` 命令?

objective-c - 创建像素缓冲区 Objective-C

objective-c - 我们需要检查对象是否实际分配了吗?

ios - 如何在 iOS 中使用两个不同的表

iphone - 在 iPhone 的应用程序中访问本地短信数据

应用程序中的 ios 路径问题缺少 libidn-1.15.tar.gz