我有一个NSTextField
显示时不使用边框和窗口背景颜色,但我希望在编辑时将其更改为具有默认边框和白色 BG 颜色。我知道我可以通过以下方式更改这些属性:
nameTextField.bezeled = true
nameTextField.backgroundColor = NSColor.textBackgroundColor()
我不知道的是如何在文本字段开始编辑和结束时收到通知。似乎没有这方面的行动。还有其他方法可以实现这种行为吗?
编辑:
实际上,当将操作设置为“编辑结束时发送”时,可以通过文本字段的更改操作来检测编辑结束,这样就解决了问题,但仍然如何检测开始编辑?
您可以设置delegate
of NSTextField
:
nameTextField.delegate = self
然后你可以设置不同的状态:
func control(control: NSControl, textShouldBeginEditing fieldEditor: NSText) -> Bool {
nameTextField.bezeled = true
nameTextField.backgroundColor = NSColor.textBackgroundColor()
return true
}
func control(control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
nameTextField.bezeled = false
nameTextField.backgroundColor = NSColor.windowBackgroundColor()
return true
}
EDIT:
我认为你可以子类化NSTextField
并覆盖becomeFirstResponder
和resignFirstResponder
,那么你就知道NSTextField
是否有焦点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)