NSTableView - Отключить выбор строки

У меня есть NSTableView, и я хочу отключить выбор строки.

Столбцы табличного представления привязаны к NSArrayController, а содержимое массива отображается в виде таблицы.

Как это сделать, просто используя bindings?

Ответ 1

Я думаю, вам нужно будет использовать TableViewDelegate и реализовать

- (NSIndexSet *)tableView:(NSTableView *)tableView 
    selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes

Ответ 2

Я думаю,

- (BOOL)selectionShouldChangeInTableView:(NSTableView *)aTableView
{
  return NO;
}

лучше, чем

- (NSIndexSet *)tableView:(NSTableView *)tableView selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes

Ответ 3

Пока работают предыдущие ответы, это еще один вариант, который я предпочитаю использовать:

- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex
{
    return NO;
}

Ответ 4

В качестве примечания для потомков...

Если вы объявляете selectIndexesForProposedSelection, то функция shouldTelectRow будет проигнорирована. На всякий случай, когда вам интересно, как я сделал, почему мои изменения в shouldSelectRow не повлияли...

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSTableViewDelegate_Protocol/index.html#//apple_ref/occ/intfm/NSTableViewDelegate/tableView:selectionIndexesForProposedSelection: