当 NSTableView 使用绑定时在 willDisplayCell 中获取对象信息
我有一个使用绑定来获取表数据的表。我还使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
混合数据源和绑定方法并没有什么问题。事实上,文档提到两者可以混合使用,以便在复杂的情况下获得更好的控制。一直都是这样做的,所以不要认为你做错了什么。
另外,请注意:
-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 theNSTableViewDelegate
protcol, not theNSTableViewDataSource
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.