Mac NSTextField不会先辞职

时间:2018-06-22 15:25:42

标签: nstextfield first-responder resignfirstresponder

我有一个带有一些NSTextField的窗口。当我单击一个并编辑值并按回车键时,我希望焦点返回到之前的状态。我不想在文本字段周围出现蓝色环,也不想在该文本字段上进行进一步的击键。我本以为这会自动发生。

我尝试了这些,但没有一个起作用

 sender.resignFirstResponder()

 sender.window?.makeFirstResponder(nil)

 InspectorWindowController.window?.makeFirstResponder(nil)

 AnotherWindowController.window?.becomeFirstResponder()

我正在与文本字段关联的IBAction的结尾处执行这些操作。也许我必须从其他地方去做?

谢谢

2 个答案:

答案 0 :(得分:0)

我知道了。我猜发送的动作正在另一个线程上发生。因此,您必须使用Dispatch异步调用makeFirstResponder。

DispatchQueue.main.async { //omg
    sender.window?.makeFirstResponder(nil)
}

答案 1 :(得分:0)

我需要在我的 SwiftUI macOS 应用程序中关闭第一响应者,在这里我发现以我需要的方式工作:

SDO_ORDINATE_ARRAY