Disabling NSTableView Sorting While Using Bindings

Cocoa is very nice in that it gives you alot of functionality “for free”; spell checking, table sorting, text searching, font selection, etc, etc. Unfortunately it can be hard to disable the “for free” functionality; for instance, table sorting. To disable table sorting in a NSTableView using Cocoa bindings (via NSArrayController) isn’t as simple as clicking a “isSortable” checkbox in interface builder, or calling

-[table setIsSortable:NO];

; the solution is less straightforward than you would expect. Apple hasn’t documented how to disable sorting in table views using bindings, so it was up to a clever programmer to figure it out. Unfortunately, his solution didn’t work for me, my custom NSCell’s

setObectValue:

method kept being sent

nil

for some odd reason. After a little more searching I found a solution that worked for me. Sisabling sorting when using bindings is as simple as calling

[tableView unbind:@"sortDescriptors"];

; Apple, please document this type of stuff instead of leaving us to waste time figuring it out!

2 Responses to “Disabling NSTableView Sorting While Using Bindings”


  • Thank you!

    I was going a bit insane trying to work out how to do this, and the solution you initially linked to is working for me, as I’m using a standard cell type.

    cheers!

  • Eighteen months later and this is still pretty hard to figure out. Thanks a lot, you saved some of my hair.

Leave a Reply