问题描述
我很惊讶我无法通过搜索找到答案。因此,如果有描述如何执行此操作的页面,请告诉我,但我一直找不到。
我在 NSOutlineView
中有 3 个兄弟 NssplitView
,我为 NSOutlineViewSelectionDidChange
添加了观察者,当触发时更新 NSTextView
编辑器。我什至测试负行值以表明用户已取消选择该行并清除文本。
NSOutlineViews
连接到自定义数据源对象,NssplitView
由我的自定义 NSWindowController
创建,而 NSDocument
由我的自定义 NSDocumentController
和自定义 .nib
创建(我没有使用 NSOutlineView
s)
但是,我似乎无法收到 NSOutlineView
更改其活动状态的触发器,如果用户在不同的 mouseDown
中选择不同的行,它会起作用,因为 选择已更改 但如果他们单击不同视图的选定行,我不会收到任何事件或通知,说明任何内容已更改。在视觉上,我可以看到随着行选择突出显示颜色从彩色变为灰色的变化,在失去焦点的轮廓视图中以及在新激活的视图中选择行颜色从灰色变为彩色。
我尝试捕捉 NssplitView
事件,尝试成为第一响应者,尝试观察 NSObject
中的变化我一直在通过 NSOutlineView
的 NSResponder
层次结构到 - (BOOL)acceptsFirstResponder { return YES; }
- (BOOL)becomeFirstResponder {
NSLog(@"becomefirstResponder %@",self);
return YES;
}
寻找合适的通知或方法。我发现了有关焦点更改通知的弃用文档。我在谷歌中尝试了 nsview、nsnotification、nsoutlineview 和各种操作的组合,但找不到“这就是你这样做的方式”
编辑: 这是我添加到我的 NSOutlineView 子类(以及标题中的原型)以成为第一响应者的代码,但它从未被触发。
exists
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)