有没有办法将代码附加到NSTreeController / NSOutlineView选择更改事件?

时间:2012-09-04 05:17:29

标签: cocoa nsoutlineview nstreecontroller

我有一个简单的NSOutlineView绑定到NSTreeController,它提供对我的分层数据模型的访问。我想将其作为主/详细视图,并在一些绑定视图中显示有关所选节点的一些信息。但是,我遇到了一堆死胡同:

1)NSOutlineView的文档读取:

  
    

某些委托方法尚未迁移到NSOutlineViewDelegate协议,包括:

         

outlineViewSelectionDidChange:

         

outlineViewSelectionIsChanging:

  

......这几乎就是我想要捕获的事件。虽然文件没有注明日期,但我认为我应该将“尚未迁移”视为“不要屏住呼吸。”

2)将大纲视图附加到IBOutlet提供了一些选择事件处理 - 但仅在鼠标单击时。使用键盘光标键导航层次结构不会产生任何事件。

3)NSTreeController似乎没有为这个真正基本的功能提供任何支持。

所以...我错过了什么?还是有一种更简单的方法来完成这个任务,而不是继承NSTreeController?

提前致谢...

1 个答案:

答案 0 :(得分:3)

你应该多做一些实验 - 实际上outlineViewSelectionDidChange:和outlineViewSelectionIsChanging:现在都在工作(至少在OSX 10.8中)。如果您使用的OS X版本没有这些委托方法,您仍然可以添加一个观察者来获取通知 - 它们自10.0以来一直存在