万一其他人偶然发现这篇文章,这个答案是针对更新后的问题:
更新:这似乎是焦点突出边框。我不想要它。
有什么方法可以禁用聚焦的 UI 对象周围的边框?
使用 wxWidgets API,不,没有办法删除它,因为它是本机NSTextField
类的行为。我只能通过编辑 wx 源本身以将基础对象的focusRingType属性设置为NSFocusRingTypeNone来删除它:NSTextField
文件:core/textctrl.mm
功能:wxWidgetImpl::CreateTextControl
NSTextField* v = nil;
if ( style & wxTE_PASSWORD )
v = [[wxNSSecureTextField alloc] initWithFrame:r];
else
v = [[wxNSTextField alloc] initWithFrame:r];
...
// remove glow/border when textfield gets focused
[v setFocusRingType:NSFocusRingTypeNone];
我也设置BORDER_NONE
了我的wxTextCtrl
.
当然,这种改变了标准 OS X 的外观和感觉,所以也许这就是为什么它没有作为wxTextCtrl
API 公开的原因?还是它破坏了其他东西?但到目前为止,它对我来说工作正常。另外,我的应用程序需要有自己的自定义主题,与发光边框不匹配。
我正在使用 wxWidgets 3.1.0(从他们的repo克隆)和 OS X 10.12。