这似乎应该很容易,但是任何人都可以向我指出如何做到这一点吗?似乎我应该继承NSTextView并使用drawInsertionPointInRect:color:turnedOn:但是我该怎么做?我真的不想做主要的自定义设置,也许只是触摸更厚或更短,但是问题是在哪里?
谢谢,
rc
最佳答案
这并不是很简单,因为NSSearchField
是NSTextField
而不是NSTextView
的子类。但是,每个NSTextField
使用代理NSTextView
进行绘制,并且此代理NSTextView
(称为字段编辑器)由当前窗口维护。因此,您要做的是创建自定义的NSTextView
子类,将其实例化在窗口控制器中的某个位置(或用作Windows委托的对象),然后创建以下方法:windowWillReturnFieldEditor:toObject:
。
在该方法中,检查toObject是否是您的搜索字段(或者是任何搜索字段,以防您要为窗口中的每个搜索字段覆盖它),然后返回您的自定义NSTextView
,否则返回nil
具有默认行为的默认字段编辑器。
关于macos - 如何在NSSearchField中自定义光标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15126429/