2

我有一个 NSTextView,我想将其用作 NSTextField 的字段编辑器。

由于视图中会有其他不使用自定义字段编辑器的 NSTextField,看来我应该使用 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 上。

有人会怜悯我,并解开我的思想吗?

4

1 回答 1

-1

只是想我会为存档回答这个问题,因为我想我现在明白了,(令人惊讶的是 sleep 会做什么)。

具体方法调用的用法可以是:

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

通过使用窗口的委托方法,customTextView 可以用作 fieldEditor:

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

其中客户端可以是文本字段。

然后对fieldEditorForViewtextField 的调用将返回该 CustomTextView。

于 2010-12-05T17:00:17.657 回答