2 Stimmen

Wie ruft man NSCell's fieldEditorForView: auf, um einen benutzerdefinierten Feldeditor zuzuweisen

Ich habe einen NSTextView, den ich als Feldeditor eines NSTextFields verwenden möchte.

Da es andere NSTextFields in der Ansicht gibt, die keinen benutzerdefinierten Feld-Editor verwenden, scheint es, dass ich die Methode von NSCell verwenden sollte

- (NSTextView *)fieldEditorForView:(NSView *)aControlView

Ich kann mir allerdings nicht erklären, wie man das nennt, und habe auch keine Beispiele für die Verwendung gefunden.

In der NSCell-Dokumentation heißt es, dass 'aControlView' eine :

Die Ansicht mit Zellen, die eine einen benutzerdefinierten Feldeditor benötigen.

Was mein Gehirn sagt bedeutet "die Ansicht dieses NSTextField ist in", und nicht die NSTextField (als Unterklasse von NSView).

NSView *viewTheTextFieldIsIn;
CustomTextView *customTextView subclass of NSTextView (the field editor)
NSTextField *textField

Allerdings:

[[textField cell] fieldEditorForView:customTextView];

macht für mich keinen Sinn, weil es nicht viewForFieldEditor: ...aber es ist auf NSCell.

Könnte sich jemand meiner erbarmen und mein Denken entschärfen?

-1voto

lulu Punkte 669

Ich dachte, ich antworte mal für das Archiv, denn ich glaube, ich verstehe es jetzt, (erstaunlich, was Schlaf bewirken kann).

Der spezifische Methodenaufruf kann verwendet werden:

 CustomTextView *customTextView = (CustomTextView *)[[self.textField cell] fieldEditorForView:self.textField];
[customTextView doSomeOtherStuffWithIt];

Die customTextView kann als FieldEditor verwendet werden, indem die Delegate-Methode des Fensters verwendet wird:

-(id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)client

wobei client das textField sein kann.

Dann der Aufruf an fieldEditorForView auf das textField gibt diese CustomTextView zurück.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X