gpt4 book ai didi

objective-c - NSSecureTextField stringValue 始终为 "(null)"

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

我有一个具有属性 myUsernamemyPassword 的 User 类,我希望 UI 中的文本字段将字符串值传递给名为 的 AppDelegate 方法链接,它执行一些后台 NSTask 操作,并指向用户对象的方法 setUserCredentials

但是,使用 NSSecureTextField 检索密码,然后将其传递给 NSLog 以验证始终打印 (null) 到屏幕? NSTextField 工作正常。

[self.activeUser setMyUsername:self.myUsernameTextField.stringValue];
[self.activeUser setMyPassword:self.myPasswordSecureTextField.stringValue];
NSLog(@"Username: %@", self.activeUser.myUsername);
NSLog(@"Password: %@", self.activeUser.myPassword);

打印:

2013-02-09 23:34:58.491 LabSync[25215:303] Username: jon
2013-02-09 23:34:58.491 LabSync[25215:303] Password: (null)

对于 Obj-C、Cocoa 和 XCode 来说是全新的。在文档或搜索中找不到任何与此相关的内容。安全字段应该与常规字段相同,只是它阻止复制、剪切和粘贴以及查看字符串(或者我是这么读的)。

如何获取密码值?

最佳答案

Interface Builder 中存在一个问题,偶尔 socket 无法正确连接,通常会导致您的 socket 为零。如果您要在 nil 对象上调用 stringValue,它将简单地返回 nil(在控制台中显示为 (null))。

您可能需要首先检查商店是否在应用程序中注册,您可以通过以下方式执行此操作:

NSLog(@"password field = %@", self.myPasswordSecureTextField);

将其放置在 View 完成加载后执行的地方。如果它显示为空,请确保您确实已将文本字段连接到 socket 。如果有,请尝试创建一个新的 socket ,或重命名现有的 socket ,看看会发生什么。

我明白最后一个建议可能看起来有点奇怪,甚至很奇怪,但我已经见过这个问题几次,而且之前已经解决了。

希望其中一些有所帮助。

关于objective-c - NSSecureTextField stringValue 始终为 "(null)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14794524/

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