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
?
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
?
Myślę, że będziesz musiał użyć TableViewDelegate i wdrożenie
- (NSIndexSet *)tableView:(NSTableView *)tableView
selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes
myślę
- (BOOL)selectionShouldChangeInTableView:(NSTableView *)aTableView
{
return NO;
}
jest lepsza niż
- (NSIndexSet *)tableView:(NSTableView *)tableView selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes
Możesz przeczytać w pliku nagłówkowym: "Aby uzyskać lepszą wydajność i lepszą kontrolę nad wyborem, powinieneś użyć tableView: selectionIndexesForProposedSelection :." – Stephan
Chociaż dotychczasowe odpowiedzi pracować, to jest inna opcja, którą preferuję:
- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex
{
return NO;
}
Jest to właściwie metoda, która ma zostać wyłączona, jeśli chcesz wyłączyć niektóre wiersze, a nie inne –
W nocie do potomności ...
Jeśli zadeklarujesz selectionIndexesForProposedSelection, następnie shouldSelectRow funkcja zostanie zignorowany. Tylko w przypadku, gdy zastanawiasz się jak ja, dlaczego moje edycje shouldSelectRow miał żadnego wpływu ...
Prawdopodobnie, ale miałem nadzieję, że to nie byłoby w przypadku ... – ericg
{return 0 ; } Przypuszczam? Wydaje się działać. –