On Jun 28, 2012, at 1:16 PM, Robert Tillyard wrote: > Hello, Keary, > > Thank you for your reply. > > Would the selector in the model be in the class for the CoreData Entity or os > it in the WindowController sub-class that controls the window that the > TableView is in? > > Would you know what the method for the selector would look like? I'm guessing > it must return an NSComparisionResult but if the entries in the ListView are > Entry classes would it be: > > - (NSComparisonResult)positionCompare:(Entry *)obj1 somethingElse:(Entry > *)obj2;
I forgot about that piece--yes, you will need to implement an NSEntityDescription subclass for the sort method. If that proves to be problematic, you can fall back to binding/delegate that you can implement in your window controller. > On 28 Jun 2012, at 19:38, Keary Suska wrote: > >> On Jun 28, 2012, at 9:44 AM, Robert Tillyard wrote: >> >>> Hello, >>> >>> I'm writing an application that handles results for a running club. >>> >>> I have an NSTableView that has columns bound to a CoreData Entity such as >>> Entries.arrangedObjects.position, position is an NSString that contains >>> numbers such as @"1" and @"2" or @"" but the position can also be @"DNF" >>> (Did not finish). >>> >>> I have a method in the WindowController that sorts the 'Entry' objects and >>> handles these cases correctly returning an NSArray using: >>> >>> [array sortUsingComparator:^(id obj1, id obj2) >>> { >>> NSComparisonResult r; >>> >>> r = .... >>> >>> return (r); >>> }]; >>> >>> How can I get my table view to work so that when the user clicks in the >>> Pos. column I can do my custom sort? at present it is doing an ASCII sort >>> so I get 1, 10, 100, then 2, 20, 200 etc... >>> >>> I now I need to put a key and sort descriptor in IB but don't know what >>> code I have to add to the Entity ot WindowController to handle it. >> >> >> Although there may be better ways, the easiest way is to specify the >> per-column sort in IB, and use the "selector" method for the position >> column. You would need to implement a sort method in your model, of course. >> Alternatively you could use the NSTableView delegate method >> tableView:sortDescriptorsDidChange:. You could use the latter in conjunction >> with the sortDescriptors binding in the array controller. Keary Suska Esoteritech, Inc. "Demystifying technology for your home or business" _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com