Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XCode 12 Swift 5在关闭窗口之前捕获NSTextFields中的编辑_Swift_Macos_Nstextfield_First Responder_Resignfirstresponder - Fatal编程技术网

XCode 12 Swift 5在关闭窗口之前捕获NSTextFields中的编辑

XCode 12 Swift 5在关闭窗口之前捕获NSTextFields中的编辑,swift,macos,nstextfield,first-responder,resignfirstresponder,Swift,Macos,Nstextfield,First Responder,Resignfirstresponder,我正在使用Swift重写旧的Objective-C应用程序,并尝试遵循最新的约定,包括故事板而不是NIB/XIB文件 我有一个带有许多不同文本字段的首选项窗口。我有在字段退出时运行的操作底线:当窗口关闭时,仍处于选中状态的文本字段中的任何编辑都将丢失 这些字段嵌入在NSTABLEVIEW中。。。如果我选择一个字段并切换到另一个选项卡,该字段将退出并触发相应的功能。然而,如果我关上窗户,什么也不会发生。如果用户在特定字段中进行更改并关闭窗口,则这些更改将丢失。这似乎与Mac非常不一样 那么,当窗口

我正在使用Swift重写旧的Objective-C应用程序,并尝试遵循最新的约定,包括故事板而不是NIB/XIB文件

我有一个带有许多不同文本字段的首选项窗口。我有在字段退出时运行的操作底线:当窗口关闭时,仍处于选中状态的文本字段中的任何编辑都将丢失

这些字段嵌入在NSTABLEVIEW中。。。如果我选择一个字段并切换到另一个选项卡,该字段将退出并触发相应的功能。然而,如果我关上窗户,什么也不会发生。如果用户在特定字段中进行更改并关闭窗口,则这些更改将丢失。这似乎与Mac非常不一样

那么,当窗口关闭时,有没有办法取消选择窗口中的任何选定文本字段


这感觉应该很简单,但我无法理解。

是什么阻止了您展示您迄今为止所做的工作?旧应用程序如何进行编辑?我仔细查看了旧应用程序。它有一个“OK”按钮来关闭preferences窗口,该窗口触发代码以捕获对字段的任何更改。不太优雅。在窗口关闭之前,我通过编程切换到不同的选项卡视图来解决这个问题。也不优雅,但它很管用。做
window.makeFirstResponder(nil)
,这样就行了!非常感谢。我知道必须有一种更优雅的方式。