Cliquer dans une NSTableView sans sélectionner
colas_
Membre
J'ai une TableView qu'il n'est "sélectionnée".
Si je clique dedans, d'une part il "sélectionne" cette TableView mais en plus, directement, il sélectionne la ligne sur laquelle j'ai cliqué.
Je voudrais que le comportement soit différent :
- que le premier cliquer rende active la TableView
- que seulement le clic suivant sélectionne une ligne.
Est-ce possible/facile ?
Merci !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il existe une méthode de NSView qui pourrait te convenir:
- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
Il faut sous classer NSTableView.
@Ali :
Oui, c'est un sujet OSX plus que iOS.
@mpergand
J'avais hélas peur qu'il faille sous-classer NSTableView...
Vu que les NSTableView sont presque toujours créés via IB, je me dis que ça doit être horrible d'utiliser un sous-classe de NSTableView. L'as-tu déjà fait ?
Pourquoi horrible ?
Dans IB tu changes le nom de la classe pour les tableViews concernées.
Tu n'as pas besoin de modifier quoi que ce soit dans tes fichiers sources.
Je ne savais pas que c'était possible !
Merci !
J'ai essayé ceci :
La méthode acceptsFirstMouse est appelée quand je clique dans ma OutlineView alors que la fenêtre n'est pas active.
Je voudrais un comportement similaire lorsque je clique dans la OutlineView alors qu'une autre vue de cette même fenêtre était sélectionnée.
Faire un test dans mouseDown ?
En fait,
il semble que dans le test que tu proposes, on est toujours le firstResponder !!
Autrement dit,
répond toujours NO.
Finalement, je m'en suis sorti ajout un BOOL qui code si je viens de devenir le firstResponder.
Remarquez qu'on a besoin d'un setNeedsDisplay.