2010-11-30 9 views
1

Ich habe eine NSTableView, in der ich Tastaturereignisse in einer bearbeitbaren Zelle abfangen und die Zelle durch Zeichenfolgen ersetzen muss. Drücken Sie beispielsweise "a" und lassen Sie das "a" abgefangen und den Wert "Alpha" zugewiesen, wenn die Tabelle neu geladen wird. Die tatsächliche Situation ist etwas komplexer, da ich auch HID-Geräte handhabe, aber das ist eine ganz andere Geschichte. Es genügt zu sagen, ich möchte einfach in den Bearbeitungsmodus gehen und die Anzeige der vom Keyboard generierten Werte anhalten.Filterung von Text in NSTableView

Der letzte Teil davon (Anzeige "Alpha") ist einfach, aber ich kann den ersten Teil des Problems nicht herausfinden. Wenn ich die Tabelle von der Unterklasse abtrenne und sie zum Ersthelfer mache, kann ich das Ereignis keyDown: erhalten, aber sobald der Benutzer auf eine Zelle doppelklickt und mit der Eingabe beginnt, verstummt dies.

Da keiner der anderen NSTableView Komponenten (NSCell, NSTextFieldCell usw.) leiten sich von NSResponder, ich bin vorausgesetzt, es ist ein NSTextField dort irgendwo begraben.

Also, was ist der beste Weg, um Text zu filtern, sobald der Benutzer in Zelle Bearbeitungsmodus geht?

Antwort

1

Wie immer geschieht: Nach acht Stunden Arbeit an diesem, das Lesen der Dokumente fünfmal und dann auf das Netz zurückgreifen, ich die Antwort fünf Minuten später finden:

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

Leider Bandbreite zu verbrauchen.