Before 10.6, it was not easy to do, subclassing the browser cell was one way to do it, but since 10.6 it's easier, here is how to…
Introduced in 10.6:
By implementing this method in your delegate/datasource, you can test if the selection will be empty after the processing of the proposed index will be done:
- (NSIndexSet *)browser:(NSBrowser *)browser selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes inColumn:(NSInteger)column
and then, according to your needs, turn on/off UI items. The initial state of these items remain to be set up in some "init" method: only you know if the selection is empty at start of the browsing session or not.
BOOL willGoNoSelection = (column == 0) && ([proposedSelectionIndexes count] == 0) ;