2010-11-30 4 views
1

J'ai un NSTableView dans lequel je dois pouvoir intercepter des événements de clavier dans une cellule modifiable et remplacer la cellule par des chaînes. Par exemple, appuyez sur "a" et faites "a" intercepter le "a" et la valeur "Alpha" assignée lors du rechargement de la table. La situation actuelle est un peu plus complexe dans la mesure où je gère également les périphériques HID, mais c'est une tout autre histoire. Il suffit de dire que je veux juste pouvoir passer en mode édition et arrêter l'affichage des valeurs générées par le clavier.Filtrage du texte dans NSTableView

La dernière partie de cette (affichage "Alpha") est facile, mais je ne peux pas comprendre la première partie du problème. Si je sous-classe la table et en fais le premier répondeur, je peux recevoir l'événement keyDown:, mais une fois que l'utilisateur double-clique sur une cellule et commence à taper, cela devient silencieux.

Aucun des autres composants NSTableView (NSCell, NSTextFieldCell, etc.) découlent NSResponder, je suppose il y a un NSTextField enterré là-dedans quelque part. Alors, quel est le meilleur moyen de filtrer le texte une fois que l'utilisateur passe en mode édition de cellule?

Répondre

1

Comme il arrive toujours: après avoir travaillé sur ce pendant huit heures, la lecture de tous les docs cinq fois, puis le recours au filet, je trouve la réponse cinq minutes plus tard:

- (BOOL)textShouldBeginEditing:(NSText *)textObject. 

Désolé à consommer de la bande passante.