2011-09-02 4 views
17

J'ai un NSTableView et je veux désactiver la sélection de ligne.NSTableView - Désactiver la sélection de ligne

Les colonnes de la vue de table sont liées à NSArrayController et le contenu de la matrice s'affiche dans la vue de table.

Comment puis-je faire cela simplement en utilisant bindings?

Répondre

21

Je pense que vous aurez besoin d'utiliser un TableViewDelegate et mettre en œuvre

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

Probablement, mais j'espérais ce ne serait pas le cas ... – ericg

+0

{return 0 ; } Je suppose? Ça semble fonctionner. –

13

Je pense que

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

est mieux que

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

Vous pouvez lire dans le fichier d'en-tête: "Pour de meilleures performances et un meilleur contrôle sur la sélection, vous devez utiliser tableView: selectionIndexesForProposedSelection :." – Stephan

14

Alors que les réponses précédentes fonctionnent, c'est une autre option que je préfère utiliser:

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

C'est en fait la méthode que vous voulez si vous voulez désactiver certaines lignes et pas d'autres d'être sélectionné –

Questions connexes