gpt4 book ai didi

iOS Obj-C 切换多个文本字段的安全文本输入

转载 作者:行者123 更新时间:2023-11-28 21:10:12 26 4
gpt4 key购买 nike

这里是 Obj-C 的新手。我有 6 个包含用户 PIN 码的文本字段

如何切换这 6 个 UI 文本字段的安全文本输入?有按钮可以显示和取消显示 PIN 码。默认情况下,安全文本条目在 Storyboard 上处于选中状态。

在谷歌搜索了一段时间后,我发现这段代码旨在查找我 View 中的所有文本字段

- (NSArray*) findAllTextFieldsInView:(UIView*)view {
NSMutableArray* textfieldarray = [[NSMutableArray alloc] init];
for (id x in [view subviews]) {
if ([x isKindOfClass:[UITextField class]])
[textfieldarray addObject:x];

if ([x respondsToSelector:@selector(subviews)]) {
[textfieldarray addObjectsFromArray:[self findAllTextFieldsInView:x]];
}
}
return textfieldarray;
}

这是我的代码

- (IBAction) revealPIN:(id)sender {

if (self.reveal == TRUE) {
self.reveal = FALSE;
}
else {
self.reveal = TRUE;
}

NSArray* allTextFields = [self findAllTextFieldsInView:[self view]];
}

我不知道将 textField.secureTextEntry = YESNO 放在哪里;

我输入 bool 值以便检查切换状态。在此之后我必须做什么?还是有其他更优雅的方式来实现它?我对如何做到这一点感到困惑

谢谢!

最佳答案

你应该这样尝试:

- (IBAction) revealPIN:(id)sender {

if (self.reveal == TRUE) {
self.reveal = FALSE;
}
else {
self.reveal = TRUE;
}

NSArray* allTextFields = [self findAllTextFieldsInView:[self view]];

for tf in allTextFields
{
tf.secureTextEntry = self.reveal; // <--- Check this one
}
}

您还可以优化,而不是先找到文本字段然后更新它们的 secureTextEntry 属性,您应该创建一个直接更新文本字段属性的方法,如下所示:

- (void) updateSecureEntryAttrForAllTextFieldsInView:(UIView*)view {
NSMutableArray* textfieldarray = [[NSMutableArray alloc] init];
for (id x in [view subviews]) {
if ([x isKindOfClass:[UITextField class]])
x.secureTextEntry = self.reveal; // <--- Check this one

if ([x respondsToSelector:@selector(subviews)]) {
[textfieldarray addObjectsFromArray:[self updateSecureEntryAttrForAllTextFieldsInView:x]];
}
}
return;
}

关于iOS Obj-C 切换多个文本字段的安全文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43839996/

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