如何调用NSCell的fieldEditorForView:分配自定义字段编辑器

时间:2010-12-05 02:00:11

标签: cocoa nstextfield nstextview nstextfieldcell

我有一个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上。

有人会怜悯我,并且不再咆哮我的想法吗?

1 个答案:

答案 0 :(得分:-1)

我想我会为存档回答这个问题,因为我觉得我现在明白了, (惊人的睡眠会做什么)。

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

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

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

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

其中client可以是textField。

然后对textField的fieldEditorForView的调用将返回CustomTextView。