2011-09-02 19 views
17

Mam NSTableView i chcę wyłączyć wybór wiersza.NSTableView - Wyłącz wybór wiersza

Kolumny widoku tabeli są powiązane z NSArrayController, a zawartość tablicy wyświetla się w widoku tabeli.

Jak mogę to zrobić, używając tylko numeru bindings?

Odpowiedz

21

Myślę, że będziesz musiał użyć TableViewDelegate i wdrożenie

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

Prawdopodobnie, ale miałem nadzieję, że to nie byłoby w przypadku ... – ericg

+0

{return 0 ; } Przypuszczam? Wydaje się działać. –

13

myślę

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

jest lepsza niż

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

Możesz przeczytać w pliku nagłówkowym: "Aby uzyskać lepszą wydajność i lepszą kontrolę nad wyborem, powinieneś użyć tableView: selectionIndexesForProposedSelection :." – Stephan

14

Chociaż dotychczasowe odpowiedzi pracować, to jest inna opcja, którą preferuję:

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

Jest to właściwie metoda, która ma zostać wyłączona, jeśli chcesz wyłączyć niektóre wiersze, a nie inne –