gpt4 book ai didi

cocoa - 处理多个 NSTableView 的最佳方法

转载 作者:行者123 更新时间:2023-12-03 16:08:15 26 4
gpt4 key购买 nike

在不使用 Cocoa Bindings 的情况下处理多个 NSTableView 的最佳方式是什么?

在我的应用程序中,我有两个 NSTableViews ,它们之间的关系足够密切,因此我使用相同的对象作为两者的委托(delegate)和数据源。问题是两个 tableView 调用相同的方法。我目前根据 NSControl -tag 区分两个 tableView。

我越深入地研究这段代码, -tag 的使用看起来就越难看。我最终创建了大量重复的代码来区分每个委托(delegate)/数据源方法中的 tableView。该代码最终明显是非面向对象的。

我可以创建一个单独的对象来处理一个或另一个 tableView,但是该对象的创建很大程度上是一个人为构造,只是为了提供不同的委托(delegate)/数据源。

现在每个人都只使用 Cocoa Bindings 吗?我避免使用绑定(bind),因为我想在可在 Mac OS 和 iPhone 之间转移的技术上磨练我的 Cocoa 技能。

最佳答案

NSTableView 的每个委托(delegate)/数据源方法都会传递调用它的 NSTableView 实例作为第一个参数(传递 NSNotification 对象的实例除外,在这种情况下,NSNotification 的 object 是 TableView 实例)。一些示例包括:

- (int)numberOfRowsForTableView:(NSTableView*)aTableView;

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn*)aTableColumn row:(NSInteger)rowIndex

- (void)tableViewSelectionDidChange:(NSNotification *)aNotification

如果您使用一个 Controller 对象作为多个表的委托(delegate)/数据源,则可以仅使用该参数来区分它们。

关于cocoa - 处理多个 NSTableView 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/505062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com