0

我试图通过使用 indexOfSelectedItem 获取具有数据源的 NSComboBox 的选定索引。

[combobox setUsesDataSource:YES];
[combobox setDataSource:dataSource];
[combobox selectItemAtIndex:1];
int idx =[combobox indexOfSelectedItem];

idx 将始终返回 -1;

即使在 InterfaceBuilder 中为 NSComboBox 定义内部列表时,也会得到相同的结果。

有没有其他方法可以检索选定的索引?

4

1 回答 1

2

您可以尝试打电话[combobox numberOfItems];只是为了确保您在列表中有项目。

此外,调用selectItemAtIndex:1应该触发一个NSComboBoxSelectionDidChangeNotification,您可以监听它以确保它发生变化。

编辑 1:另外,您是否确保在 Interface Builder 中的 ComboBox 的“属性检查器”(Command-1 快捷键)上选择“使用数据源”?默认情况下,它使用内部列表,这会与您尝试使用的 DataSource 方法发生冲突。

编辑2:不要介意先前的评论,您的代码明确地调用它。

于 2009-11-05T16:34:16.807 回答