2

NSTextField のフィールド エディターとして使用したい NSTextView があります。

ビューにはカスタム フィールド エディタを使用しない他の NSTextFields があるため、NSCell のメソッドを使用する必要があるようです。

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

ただし、これをどのように呼び出すかについて頭を悩ますことはできず、使用されている例は見つかりませんでした。

NSCellのドキュメントによると、「aControlView」は次のとおりです。

カスタム フィールド エディターを必要とするセルを含むビュー。

私の脳が言っているのは、NSTextField(NSViewのサブクラスとして)ではなく、「このNSTextFieldが含まれているビュー」を意味します。

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

でも:

[[textField cell] fieldEditorForView:customTextView];

viewForFieldEditor:それは...ではなく、NSCell上にあるため、私には意味がありません。

誰かが私を憐れんで、私の考えをほぐしてくれますか?

4

1 に答える 1

-1

私は今それを理解していると思うので、アーカイブのためにこれに答えると思っただけです(睡眠が何をするのか驚くべきことです)。

特定のメソッド呼び出しの使用法は次のとおりです。

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

customTextView は、ウィンドウのデリゲート メソッドを使用して fieldEditor として使用できます。

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

ここで、client は textField にすることができます。

次に、fieldEditorForViewtextField を呼び出すと、その CustomTextView が返されます。

于 2010-12-05T17:00:17.657 に答える