当我尝试设置对这个特定键的观察时,没有任何反应。这就是我的意思。
我有一个标准的 Cocoa 应用程序,带有一个 NSTableView,我想出了如何根据选择的单元格更改图像视图中显示的图像。
现在,我试图弄清楚如何通过选定的索引禁用/启用按钮。我的意思是,我在窗口中有一个按钮,该按钮在某些索引上被禁用。
SomeClass 的 init 方法
-(id)init {
if (self=[super init]) {
[arrayController addObserver:self forKeyPath:@"selectionIndex" options:NSKeyValueObservingOptionNew context:NULL];
}
}
但是,当我实现 observeValueForKeyPath: 方法时,当我选择新索引时,并没有获取更改。事实上,如果我尝试记录出口,出口会显示 (null)。但是,当我在 AppDelegate 中添加观察者时,AppDelegate(当指定为观察者时)会获取更改。
我的通用 SomeClass 对象没有某些原因吗?应该以不同的方式完成吗?
笔记:
我尝试将 SomeClass 子类化为 NSWindow,然后创建窗口的所有者 SomeClass,并在 awakeFromNib 中设置观察者,这可行,但似乎是一种不好的方法。