【发布时间】:2011-12-15 04:04:56
【问题描述】:
在 Aaron Hillegass 的 Cocoa Programming for Mac OS X 中,Raiseman 应用程序将 Interface Builder (IB) 中的按钮连接到带有发送操作 -remove: 的 NSArrayController。在 MyDocument 类中,他实现了两个 KVC 方法:
- (void)insertObject:(Person *)p inEmployeesAtIndex:(int)index;
- (void)removeObjectFromEmployeesAtIndex:(int)index;
当按下这个按钮时,-removeObjectFromEmployeesAtIndex: 方法被调用并且当前选中的 Person (Model) 对象被从数组中移除。
- IB中使用的
remove:方法如何导致-removeObjectFromEmployeesAtIndex:方法被调用? - 如何使用
NSTreeController重现此效果?
【问题讨论】:
-
您对树形控制器进行了哪些尝试,又是如何失败的?这将是有用的信息。
-
假设我有两种节点类型:Folder 和 Person 对象。在 IB 中,通过将树控制器的对象控制器类名称设置为 Folder 或 Person,我可以添加一个或另一个。但这不允许根据树中的深度或使用不同的添加和删除按钮对来添加文件夹或人员。
标签: cocoa interface-builder nsarraycontroller key-value-coding nstreecontroller