gpt4 book ai didi

cocoa - NSTableView 排序

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

我在 NSTableView 中有两列作为名称和薪水,有 5-10 个值。我想在单击两个列的标题后对这些列进行排序。互联网上有很多数据,但我无法使用这些数据。请帮我在 cocoa 中做到这一点。

提前致谢并感谢任何帮助。

最佳答案

每个表列都有一个方法setSortDescriptorPrototype排序描述符是告诉数组如何对自身进行排序的方法(升序、降序、忽略大小写等)迭代您想要排序的每个列,并对每个列调用此方法,并传递所需的排序描述符(在我的例子中,我将使用列标识符)

for (NSTableColumn *tableColumn in tableView.tableColumns ) {

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:tableColumn.identifier ascending:YES selector:@selector(compare:)];
[tableColumn setSortDescriptorPrototype:sortDescriptor];
}

写完这段初始化代码后,NSTableViewDataSource有一个方法- (void)tableView:(NSTableView *)aTableView sortDescriptorsDidChange:(NSArray *)oldDescriptors来通知你每当排序描述符更改时,在数据源中实现此方法并向数据数组发送消息以对其进行排序

- (void)tableView:(NSTableView *)aTableView sortDescriptorsDidChange:(NSArray *)oldDescriptors
{
self.data = [self.data sortedArrayUsingDescriptors:sortDescriptors];
[aTableView reloadData];
}

每次单击列标题时都会触发此方法,并且 NSTableColumn 显示一个漂亮的小三角形,显示排序顺序。

关于cocoa - NSTableView 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11095737/

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