gpt4 book ai didi

objective-c - 使用内部列表时如何对 NSComboBox 上的条目进行排序

转载 作者:行者123 更新时间:2023-12-03 17:11:32 25 4
gpt4 key购买 nike

我有一个NSComboBox我不使用数据源,而是使用内部列表功能。因此,我使用 addItemsWithObjectValuesaddItemWithObjectValue 方法填充它。

我的问题是,在使用 addItemWithObjectValue 添加新内容后,如何按字母顺序对内部列表中的组合框条目进行排序?

最佳答案

在不使用数据源的情况下维护 NSComboBox 中的排序。首先,当您最初添加项目时,您必须按如下方式对其进行排序:

// Using NSComparator because it is needed later on
NSComparator sort = ^(id obj1, id obj2) {
return [obj1 caseInsensitiveCompare: obj2];
};

[comboBox addItemsWithObjectValues: [titles sortedArrayUsingComparator: sort]];

接下来,当您在添加单个项目时希望保持排序:

NSArray *objectValues = comboBox.objectValues;
[comboBox insertItemWithObjectValue: newTitle
atIndex: [objectValues indexOfObject: newTitle
inSortedRange: NSMakeRange(0, objectValues.count)
options: NSBinarySearchingInsertionIndex
usingComparator: sort]];

这通过找到适当的索引来插入新项目并在该索引处插入该项目来实现。

关于objective-c - 使用内部列表时如何对 NSComboBox 上的条目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24786037/

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