Macos 按下按钮时,NSTextField stringValue不是最新的
我创建了一个对话框窗口,其中包含一个NSTextField和一个NSSecureTextField(用于用户名和密码),以及一个要提交的NSButton。插座在Interface Builder中正确连接(非零) 我正在检索按钮的操作处理程序中用户名和密码字段的stringValue。然而:Macos 按下按钮时,NSTextField stringValue不是最新的,macos,cocoa,nstextfield,Macos,Cocoa,Nstextfield,我创建了一个对话框窗口,其中包含一个NSTextField和一个NSSecureTextField(用于用户名和密码),以及一个要提交的NSButton。插座在Interface Builder中正确连接(非零) 我正在检索按钮的操作处理程序中用户名和密码字段的stringValue。然而: 如果我在密码字段中输入一个字符并按下按钮,则其stringValue为空 如果我在密码字段('a')中输入一个字符,将焦点更改为用户名字段,将焦点更改回密码字段,然后输入第二个字符('b'),则密码字符串
- 如果我在密码字段中输入一个字符并按下按钮,则其stringValue为空
- 如果我在密码字段('a')中输入一个字符,将焦点更改为用户名字段,将焦点更改回密码字段,然后输入第二个字符('b'),则密码字符串值为'a'而不是'ab'
- 将文本字段的操作设置为“结束编辑时发送”
- 将文本字段的状态设置为“连续”
- 在焦点中的文本字段上调用ValidateEdit
- 在焦点文本字段上调用resignFirstResponder
- 调用[self.window makeFirstResponder:self.window]
- 在以文本字段为参数(或nil)的窗口上调用endEditingFor:
- 我找到了解决问题的办法。在询问UITextField的值之前,我禁用了它。出于某种原因,如果我在禁用它之前请求该值,则该值是正确的
更新:UIControl setEnabled:方法的文档说明,如果其参数为否,“任何编辑都将中止。”