![]() |
1
1
您是绑定列还是绑定单元格?您应该绑定列。
先利用孩子的价值不是更好吗?如果没有其他信息,检索起来会更便宜(不需要消息)。 修正后的getter将如下所示:
有两种解决方案。一个比较干净,10点5分以后开始工作。另一个有点脏,可以在任何版本的MacOSX上使用。 脏的解决方案是让setter方法中的父级代表其所有子级发布kvo通知。比如:
这是脏的,因为它有一个对象发布关于另一个对象属性的kvo通知。每个对象只应声称知道自己属性的值;声称知道另一个对象属性值的对象可能出错,导致错误和/或效率低下的行为,更不用说代码容易引起头痛。
更清洁的解决方案是让每个对象观察其父对象的这个属性。通过
the
使用clean解决方案,每个对象只发送关于其自身属性更改的kvo通知;没有对象发布关于其他对象属性的通知。
当属性的值为
|
![]() |
2
1
您的setter不发送-willChangeValueForkey:和-didChangeValueForkey:更改前后,因此绑定机制不会“注意”更改。 还有,告诉一个观点 任何东西 直接从模型对象…不是个好办法。在这种情况下,由于您使用的是绑定,因此树控制器应该注意更改(一旦您修复了setter以发送正确的通知),并更新大纲视图。 |
![]() |
Trombone0904 · 使用nsbutton选择大纲视图行 7 年前 |
![]() |
krema · 自动保存NSOutlineView的展开项不起作用 10 年前 |
![]() |
sapi · 如何在NSOutlineView中自动设置行高以适应文本? 10 年前 |