Sorting 通过cocoa绑定在IB中按字符串长度对表列进行排序时,效果不理想
我使用NSArrayController制作了一个示例应用程序,其中显示了NSTableView上的员工及其工资列表 基本功能按预期工作。此外,当在属性窗格中为表列-Sorting 通过cocoa绑定在IB中按字符串长度对表列进行排序时,效果不理想,sorting,cocoa-bindings,nstableview,nsarraycontroller,Sorting,Cocoa Bindings,Nstableview,Nsarraycontroller,我使用NSArrayController制作了一个示例应用程序,其中显示了NSTableView上的员工及其工资列表 基本功能按预期工作。此外,当在属性窗格中为表列-employeeName分配选择器-compare或caseInsensitiveCompare时,排序工作正常 当我试图通过在IB中将表列-employeeName的选择器设置为-length来按字符串长度对其排序时,会出现问题。它按字符串长度排序,但排序不正确 它在交替单击时进行排序即,在第一次单击时,它按长度降序对表中的内容进
employeeName
分配选择器-compare
或caseInsensitiveCompare
时,排序工作正常
当我试图通过在IB中将表列-employeeName
的选择器设置为-length
来按字符串长度对其排序时,会出现问题。它按字符串长度排序,但排序不正确
它在交替单击时进行排序
即,在第一次单击时,它按长度降序对表中的内容进行排序。然后在第二次单击时,它不会按长度按升序排列内容,而是将顶部的箭头设置为升序。然后在第三次单击时,它按长度按升序排列内容,但将表列顶部的箭头设置为降序,以此类推
有人能告诉我我哪里错了吗
谢谢
Miraj我猜你正在努力完成MacOSX的Cocoa编程第8章 您需要将列的sortKey设置为
personName.length
,选择器设置为compare:
然后,排序描述符将通过“比较”字符串“长度”进行排序 我猜你正在学习MacOSX的Cocoa编程第8章 您需要将列的sortKey设置为
personName.length
,选择器设置为compare:
然后,排序描述符将通过“比较”字符串“长度”进行排序 macOS开发(阅读BNR的书)和Swift语言初学者的答案: Swift字符串没有
length
属性。您可以通过其字符数组的计数来访问其长度
要实现这一点,您应该将sortKey
设置为name.characters.count
并将选择器设置为比较:
我猜BNR建议您应该找到表示字符串长度的东西,而不是有长度属性或方法。为macOS开发初学者(阅读BNR的书)和Swift语言解答:
Swift字符串没有length
属性。您可以通过其字符数组的计数来访问其长度
要实现这一点,您应该将sortKey
设置为name.characters.count
并将选择器设置为比较:
我猜BNR建议您应该找到表示字符串长度的内容,而不是存在length
属性或方法