gpt4 book ai didi

objective-c - 显示/隐藏密码切换。错误还是功能?

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:10 25 4
gpt4 key购买 nike

我正在使用 XCode 和 Objective-C 开发 iPad 应用程序。我有一个 UI,其中包括一个密码输入字段和一个显示/隐藏按钮(代码如下所示)。测试人员指出了以下不一致的行为。

如果密码被隐藏并且输入了一半(例如“abc”)并且用户点击切换按钮以显示密码并继续输入然后新字符(例如“def”)被添加到初始字符的末尾输入(制作“abcdef”)。一切都很好。

但是,如果显示密码并输入一半(例如“abc”)并且用户点击切换按钮以隐藏密码并继续输入,则新字符(例如“def”)将替换初始输入(使“定义”)。因此,显示/隐藏切换不仅显示或隐藏文本,而且还会在输入下一个字符时更改 UITextField 的行为(追加/清除并重新开始)。

我能想到(不是很好)为什么这种行为是设计使然的原因,但我向其展示过的人都认为这是好的。任何人都可以建议快速修复(防止切换隐藏文本操作清除部分输入的密码)吗?

- (IBAction)togglePasswordReveal:(id)sender
{
if ([self.revealButton.titleLabel.text isEqualToString:@"Show"]) {
self.password.secureTextEntry = NO;
[self.revealButton setTitle:@"Hide" forState:UIControlStateNormal];
}
else {
self.password.secureTextEntry = YES;
[self.revealButton setTitle:@"Show" forState:UIControlStateNormal];
}
}

最佳答案

我找不到它的文档,但我记得更改安全输入设置也会更改 clearsOnInsertion

查看设置 clearsOnInsertion 和/或使用委托(delegate)方法 textFieldShouldClear:textField:shouldChangeCharactersInRange:replacementString: 来修改此行为。

我猜逻辑是用户通常不会确定他们之前输入的内容,因为他们看不到字符,所以 sage 选项是强制用户重新开始。

关于objective-c - 显示/隐藏密码切换。错误还是功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22609108/

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