我想创建一个文本字段,如果我单击它,或按Enter键,它会失去焦点。因为在焦点环消失。我已经看过这样的情况,但我不知道在哪里放置代码。任何人都可以告诉我如何让NSTextfield失去它的焦点吗?
答案 0 :(得分:1)
一种方法是实现NSTextFieldDelegate,将委托分配给您的文本字段,并让它调用一个选择器(代码中的一个方法更改使第一个响应者= nil)。当文本字段完成接收输入时,将使用消息调用委托。有关更多信息,请查看API:
答案 1 :(得分:1)
对于像我这样懒惰的人,这里有一些代码。
这是我使用的简化的NSTextfieldDelegate方法:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
DispatchQueue.main.async {
self.textField2.window?.makeFirstResponder(nil)
}
return true
}
resignFirstResponder Docu说:
使用NSWindow方法makeFirstResponder:而非此方法 文本查看第一响应者。永远不要直接调用此方法。
// don't use this as the name may suggest (at least it did for me)
self.textField2.resignFirstResponder()