gpt4 book ai didi

objective-c - 如果组合框动态添加了新的表格行,那么当 NSComboBox 选择发生更改时,我如何收到通知?

转载 作者:行者123 更新时间:2023-12-03 17:59:12 24 4
gpt4 key购买 nike

我有一个 NSTableView,每一行都有一个 NSComboBox。 enter image description here

表格列绑定(bind)到 NSArrayControllerA,每个 NSComboBox 绑定(bind)到 NSArrayControllerB。

当任何 NSComboBox 中的选定值发生更改时,我希望收到通知。

到目前为止,我已尝试向 NSArrayControllerB 管理的 NSArray 添加监听器,但我没有收到任何更改通知。

我还尝试使用 NSComboBoxSelectionDidChangeNotification 将观察者添加到 NSTableView,但通知似乎没有传播到父 View 。插入新行时会动态创建组合框。

谢谢

更新:NSComboBox 是如何绑定(bind)的?

enter image description here

最佳答案

<罢工>好的。我假设您已将组合框的选择绑定(bind)到阵列 Controller 的选择?如果是这样,请尝试观察数组 Controller 的 SelectionIndex 属性。 (符合 KVO 标准。)

在我的 iPhone 上,所以我现在无法轻松测试,但这应该可以解决问题。

好吧,现在我更好地理解这个问题了。

不如将单元格的选择器设置为 Controller 中的某种方法(带有封闭 TableView 的导出),例如 -comboBoxClicked: 然后实现类似的内容:

- (void)comboBoxClicked:(id)sender
{
NSUInteger changedRow = [[self tableView] selectedRow];
// Do something with changedRow
}

我做了一个粗略的测试(只是 NSLogging ChangeRow),它似乎对我有用,至少在一个非常基本的应用程序中是这样。

关于objective-c - 如果组合框动态添加了新的表格行,那么当 NSComboBox 选择发生更改时,我如何收到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9061253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com