0

我制作了一个示例应用程序,使用 NSArrayController 在 NSTableView 上显示员工的工资列表。

基本功能按预期工作。Also sorting is working fine when Selector - compareor caseInsensitiveCompareis assigned in attribute pane for table column- employeeName.

当我尝试通过将 IB 中的选择器设置为 - 来按字符串长度对其进行排序时,会出现问题length,对于表列 - employeeName。它按字符串长度排序,但不恰当。

It is doing sorting on alternate clicksIE。在第一次单击时,它会按长度降序对表中的内容进行排序。然后在第二次单击时,它不会按长度按升序排列内容,而是将箭头设置为按升序排列。然后在第三次单击时,它按长度按升序排列内容,但将表格列顶部的箭头设置为降序,依此类推......

任何人都可以建议我是否在某个地方错了?

谢谢,

米拉杰

4

2 回答 2

4

我猜你正在学习 Cocoa Programming for Mac OS X Chapter 8,

您需要为该列设置 sortKeypersonName.length和选择器compare:

然后排序描述符将通过“比较”字符串“长度”进行排序。

于 2011-02-22T22:54:26.717 回答
0

macOS 开发初学者(阅读 BNR 的书)和 Swift 语言的答案:

Swift 字符串没有length属性。您可以通过其字符数组的计数来访问其长度。

为此,您应该设置sortKeytoname.characters.countselectorto compare:

我猜 BNR 建议你应该找到一些东西来表示字符串的长度,而不是有一个length属性或方法。

于 2016-12-28T15:20:51.010 回答