我有一个NSTextField
在显示时没有使用边框和窗口背景颜色,但是我希望它在编辑时更改为具有默认边框和白色BG颜色。我知道我可以用以下方法更改这些属性:
nameTextField.bezeled = true
nameTextField.backgroundColor = NSColor.textBackgroundColor()
我不知道的是在开始编辑文本字段和结束文本字段时如何通知。似乎没有针对此的行动。有没有其他方法可以实现这种行为?
编辑: 实际上,当将动作设置为“发送结束编辑”时,可以通过文本字段的更改操作检测编辑结束,以便解决但仍然如何检测开始编辑?
答案 0 :(得分:2)
您可以设置delegate
的{{1}}:
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
}
并覆盖NSTextField
和becomeFirstResponder
,然后您知道resignFirstResponder
是否有焦点。