如何对NSStrings的NSTableColumn进行排序,忽略“The”和“A”?

时间:2010-05-09 04:11:42

标签: objective-c cocoa sorting core-data nstableview

我有一个简单的核心数据应用程序,我正在努力显示我的电影收藏。我正在使用NSTableView,它的列通过NSArrayController对象绑定到我的Core Data存储的属性。此时,单击列标题时,列的排序很好(对于数值)。

我遇到的问题是字符串排序,它们排序,但它是以标准字符串方式完成的,大写字母在小写字母之前(即在a之前的Z)。除了使案例排序正常工作之外,我还希望在排序字符串时能够忽略“The”或“A”的前缀。

在Objective-C / Cocoa中,最好的方法是什么?

1 个答案:

答案 0 :(得分:6)

在Interface Builder中,您可以将每个表列的Sort Key字段设置为与要应用于托管对象的sortDescriptor相对应。

对于要忽略“A”和“the”的每一列,您必须在托管对象上创建一个额外的方法。如果您要排序的属性为title,则创建一个名为cleanedTitle的新方法,该方法基本上需要[self title]并删除“a”和“the”。然后在Interface Builder中,告诉您的表列使用cleanedTitle排序键,而不是title排序键。