如果我没有专注于textField,如何在NSTextField上移除焦点?
我有一个NSTextField,我设置了Action:Sent On End Editing。单击textField后,当我单击视图上的其他位置时,FOCUS将始终位于我的NSTextField中。 此外,我使用 makeFirstResponder 和 resignFirstResponder ,但都是徒劳的。任何的想法?
@IBAction func endOfEditing(sender: NSTextField) {
view.window?.makeFirstResponder(nil)
view.window?.resignFirstResponder()
}
为了说明,无论我在哪里按下,FOCUS都将始终在textField中。 (即使我按下按钮)
如何在textField外部单击时删除焦点?
答案 0 :(得分:1)
试试这个:改变“view.window?”到“发件人”
@IBAction func endOfEditing(sender: NSTextField) {
sender.makeFirstResponder(nil)
sender.resignFirstResponder()
}
答案 1 :(得分:1)
快捷键4
对于那些仍在关注焦点和注意力不集中的人:我不知道在2016年是否会发生这种情况,但是在Swift 4中,我的NSTextField
失去了焦点,除非我单击另一个“可选”的插座。
例如,如果我在NSButton
之后点击NSTextField
,它不会失去焦点。我怀疑NSButton
捕获了该事件,从而阻止了文本字段知道它必须失去焦点。
这是一个非常激进的解决方案,它肯定会使NSTextField
@IBAction func clickMyButton(_ sender: NSButton) { // or anywhere else
self.quantityTextField.isEnabled = false
self.quantityTextField.isEnabled = true
}
不是很性感但是很可靠
编辑:刚刚看到它,它解决了@Lee的问题
答案 2 :(得分:0)
尝试将此功能添加到viewController
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
// I assume your textField call myText
myText. resignFirstResponder()
}