这似乎很容易,但有人能给我一些如何做到这一点的建议吗?似乎我应该将NSTextView子类化,并使用drawInsertionPointInRect:color:turnedOn:但我该怎么做呢?我真的不想做大的定制,也许只是厚一点或短一点,但问题是在哪里?
谢谢,
rc
这并不是直接的,因为NSSearchField
是NSTextField
的子类,而不是NSTextView
。但是,每个NSTextField
都使用一个代理NSTextView
进行绘制,并且该代理NSTextView
(称为字段编辑器(由当前窗口维护。因此,您要做的是创建您的自定义NSTextView
子类,在您的窗口控制器中的某个位置实例化它(或您用作窗口代理的任何东西(,然后创建以下方法:windowWillReturnFieldEditor:toObject:
。
在该方法中,您检查toObject是否是您的搜索字段(或者只是任何搜索字段,以防您想为窗口中的每个搜索字段覆盖它(,然后返回您的自定义NSTextView
,否则为具有默认行为的默认字段编辑器返回nil
。