如何禁用 NSTableVIew 中的排序?
我有一个 NSTableView ,每当我单击特定的标题列时,表中的数据就会反转或颠倒排序。我已经检查了 NSTableView
以及 NSTableColumn
但找不到任何禁用此功能的方法。如果有人可以帮助在单击特定列的标题时禁用此排序,我将不胜感激。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
NSTableView
的排序是通过其sortDescriptors
完成的,请参阅 此处。NSTableColumn
使用其sortDescriptorPrototype
(请参阅 此处)生成NSTableView
的排序描述符,具体取决于单击列标题的次数等。如果使用
dataSource
来管理数据,则排序描述符通过委托方法tableView:sortDescriptorsDidChange:
进行通信,请参阅这里。您只需忽略更改消息即可停止排序。如果您使用 Cocoa 绑定来管理数据,则排序描述符由表列生成并设置为 NSArrayController。要停止它,只需打开表列绑定的检查器,选择
值
,然后取消选中“创建排序描述符”。Sorting of the
NSTableView
is done by itssortDescriptors
, see here.An
NSTableColumn
uses itssortDescriptorPrototype
(see here) to generate the sort descriptor of theNSTableView
, depending on how many times you clicked the column header, etc.If you use
dataSource
to manage the data, then the sort descriptor is communicated via the delegate methodtableView:sortDescriptorsDidChange:
, see here. You just need to ignore the change message to stop sorting.If you use Cocoa bindings to manage the data, the sort descriptor is generated by the table column and set to the
NSArrayController
. To stop it, just open the inspector of the binding of the table column, selectvalue
, and uncheck "Creates Sort Descriptor."