如何在OSX上改变关注NSTextField的效果

bea*_*akr 7 macos cocoa focus nstextfield

在CSS中,您可以使用以下方法更改聚焦于某些内容的效果:

.myelement:focus { ... }
Run Code Online (Sandbox Code Playgroud)

在Cocoa中,文本字段总是有一种难看的蓝色光芒.如何更改聚焦NSTextField的效果(或者根本不做任何事情)?

Jos*_*zzi 16

上面命令的Cocoa等价物是:

[[textField window] makeFirstResponder:textField];
Run Code Online (Sandbox Code Playgroud)

至于更改外观,您是在询问如何为所有应用程序("全局")中的所有控件更改它,还是只为您自己的应用程序中的文本字段更改?全局变更没有API,因此系统黑客是您唯一的途径.祝好运.

对于您拥有的控件(属于您自己的应用程序的控件),您可以在Interface Builder中设置焦点环类型,或者在运行时通过代码设置,如下所示:

[textField setFocusRingType:NSFocusRingTypeNone]; 
// (or NSFocusRingTypeDefault or NSFocusRingTypeExterior)
Run Code Online (Sandbox Code Playgroud)

  • 我已经确认在`NSSecureTextField`上以编程方式设置焦点环类型似乎工作正常.仅在Interface Builder中设置类型似乎不起作用.仅供未来读者参考. (2认同)