gpt4 book ai didi

macos - 按下按钮时 NSTextField stringValue 不是最新的

转载 作者:行者123 更新时间:2023-12-03 16:13:09 25 4
gpt4 key购买 nike

我创建了一个对话框窗口,其中包含 NSTextField 和 NSSecureTextField(用于用户名和密码),以及要提交的 NSButton。 socket 在 Interface Builder 中正确连接(非零)。

我正在按钮的操作处理程序中检索用户名和密码字段的 stringValue。但是:

  • 如果我在密码字段中输入一个字符并按下按钮,则其 stringValue 为空。
  • 如果我在密码字段中输入一个字符 ('a'),将焦点更改到用户名字段,再将焦点更改回密码字段,然后输入第二个字符 ('b'),则密码 stringValue 为 'a ' 而不是 'ab'。

密码字段的 stringValue(以及用户名字段)在聚焦时似乎不会更新其值。我已尝试以下方法来解决此问题,但无济于事:

  • 将文本字段的操作设置为“编辑结束时发送”
  • 将文本字段的状态设置为连续
  • 在焦点文本字段上调用 ​​validateEditing
  • 在焦点文本字段上调用 ​​resignFirstResponder
  • 调用了 [self.window makeFirstResponder:self.window]
  • 在窗口上调用 endEditingFor:以文本字段作为参数(或 nil)

最佳答案

我找到了解决问题的方法。在询问 UITextField 的值之前,我禁用了它。由于某种原因,如果我在禁用它之前询问该值,则该值是正确的。

更新:UIControl setEnabled: 方法的文档指出,如果其参数为 NO,则“任何编辑都会中止。”

关于macos - 按下按钮时 NSTextField stringValue 不是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21339880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com