在不使用 Cocoa Bindings 的情况下处理多个 NSTableView 的最佳方法是什么?
在我的应用程序中,我有两个 NSTableViews ,它们之间的关系足够密切,因此我使用相同的对象作为两者的委托和数据源。问题是两个 tableView 调用相同的方法。我目前根据 NSControl 标签区分两个 tableView。
我越深入地研究这段代码, -tag 的使用看起来就越难看。我最终创建了大量重复的代码来区分每个委托/数据源方法中的 tableView。该代码最终明显是非面向对象的。
我可以创建一个单独的对象来处理一个或另一个 tableView,但是该对象的创建很大程度上是一种人为构造,只是为了提供不同的委托/数据源。
现在大家都只使用 Cocoa Bindings 吗?我避免使用绑定,因为我想在可在 Mac OS 和 iPhone 之间转移的技术上磨练我的 Cocoa 技能。
NSTableView 的每个委托/数据源方法都会传递调用它的 NSTableView 实例作为第一个参数(传递 NSNotification 对象的实例除外,在这种情况下,NSNotification 的object
是表视图实例)。一些例子包括:
- (int)numberOfRowsForTableView:(NSTableView*)aTableView;
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn*)aTableColumn row:(NSInteger)rowIndex
- (void)tableViewSelectionDidChange:(NSNotification *)aNotification
如果您使用一个控制器对象作为多个表的委托/数据源,则可以仅使用该参数来区分它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)