编辑时更改NSTextField边框和BG颜色

时间:2015-06-16 05:58:18

标签: macos swift cocoa nstextfield

我有一个NSTextField在显示时没有使用边框和窗口背景颜色,但是我希望它在编辑时更改为具有默认边框和白色BG颜色。我知道我可以用以下方法更改这些属性:

nameTextField.bezeled = true
nameTextField.backgroundColor = NSColor.textBackgroundColor()

我不知道的是在开始编辑文本字段和结束文本字段时如何通知。似乎没有针对此的行动。有没有其他方法可以实现这种行为?

编辑: 实际上,当将动作设置为“发送结束编辑”时,可以通过文本字段的更改操作检测编辑结束,以便解决但仍然如何检测开始编辑?

1 个答案:

答案 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 } 并覆盖NSTextFieldbecomeFirstResponder,然后您知道resignFirstResponder是否有焦点。