当 NSTableView 使用绑定时在 willDisplayCell 中获取对象信息

发布于 2024-12-16 18:15:07 字数 184 浏览 2 评论 0原文

我有一个使用绑定来获取表数据的表。我还使用 willDisplayCell 来自定义显示的特定单元格。我的问题是,如何获取 willDisplayCell 方法中引用的单元格的值?我不想查询控制器对象,因为我使用的是绑定而不是数据源。我必须调用 NSTableColumn 或 NSTableView 中的某些内容才能获取值吗?

I have a table that's using bindings to get table data. I'm also using willDisplayCell to customize the specific cell when it's being displayed. My question is, how do I get the value of the cell that's being referred-to in the willDisplayCell method? I don't want to query the controller object, since I'm using bindings and not a dataSource. Is there something in the NSTableColumn or NSTableView that I have to call to get the value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

断舍离 2024-12-23 18:15:07

混合数据源和绑定方法并没有什么问题。事实上,文档提到两者可以混合使用,以便在复杂的情况下获得更好的控制。一直都是这样做的,所以不要认为你做错了什么。

另外,请注意:-tableView:willDisplayCell:forTableColumn:row:方法是NSTableViewDelegate协议的一部分,而不是NSTableViewDataSource协议的一部分,所以它比你想象的更“脏”。 :-)

在这种情况下,正确的方法是创建一个到数组控制器的出口(这样你就可以向它发送消息)并询问其 -arrangedObjects 中的对象,该对象的索引与请求的行匹配。任何其他方式都会与框架作斗争。

There's nothing wrong with mixing the data source and bindings approaches. In fact, the documentation mentions the two can be mixed for greater control in complicated situations. It's done all the time, so don't think you're doing something wrong.

Also, point of order: the -tableView:willDisplayCell:forTableColumn:row: method is part of the NSTableViewDelegate protcol, not the NSTableViewDataSource protocol, so it's even less "dirty" than you think. :-)

The correct way in this situation is to create an outlet to your array controller (so you can message it) and ask it for the object in its -arrangedObjects whose index matches the requested row. Any other way and you're fighting the framework.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文