Как вызвать fieldEditorForView в NSCell: назначить редактор пользовательских полей - PullRequest
2 голосов
/ 05 декабря 2010

У меня есть NSTextView, который я хочу использовать в качестве редактора полей NSTextField.

Поскольку в представлении будут другие NSTextFields, которые не используют редактор пользовательских полей, кажется, мне следует использоватьМетод NSCell

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

Я не могу понять, как это вызвать, хотя и не нашел ни одного примера его использования.

В документах NSCell говорится, что aControlView:

Представление, содержащее ячейки, для которых требуется специальный редактор полей.

То, что говорит мой мозг, означает «представление, в котором находится этот NSTextField», а не NSTextField (как подкласс NSView).

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

Однако:

[[textField cell] fieldEditorForView:customTextView];

не имеет смысла для меня, потому что это не viewForFieldEditor: ..., а на NSCell.1022 * Будет ли кто-нибудь помиловать меня и отвлечь мое мышление?

1 Ответ

0 голосов
/ 05 декабря 2010

Просто подумал, что я отвечу на этот вопрос для архива, как я думаю, теперь я понимаю, (Удивительно, что будет делать сон).

Конкретное использование вызова метода может быть:

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

customTextView можно использовать как fieldEditor с помощью метода делегата окна:

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

где клиент может быть textField.

Тогда вызов fieldEditorForView в textField вернет этот CustomTextView.

...