gpt4 book ai didi

iphone - 根据条件将文本字段的焦点移动到另一个文本字段

转载 作者:行者123 更新时间:2023-12-01 18:31:32 25 4
gpt4 key购买 nike

我有 10 个文本字段,每个文本字段最多可以容纳一个字符。当我在第一个文本字段中输入字符时,焦点应自动移至下一个文本字段,依此类推。也就是说,只要在文本字段中输入第一个字符,焦点就应该转移到下一个字符。也就是说,下一个文本字段应该成为第一响应者。我编写了以下代码,使用了文本字段委托(delegate)方法。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];

for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if([myCharSet characterIsMember:c])
{
int previousTag = textField.tag;


if([textField.text length] > 0)
{
if((previousTag == 9) && ([textField10.text length] >0))
{
return NO;
}
UITextField *tempField=(UITextField *)[self.view viewWithTag:previousTag+1];
if([tempField.text length] > 0){
[tempField resignFirstResponder];
return NO;
}
[tempField becomeFirstResponder];
return YES;
}

}
else{
return NO;
}
}


return YES;
}

但我没有得到想要的结果。当我输入一个字符时,它在第一个文本字段中输入,但焦点没有转移到下一个,尽管当我输入第二个字符时,它被输入到下一个文本字段中。

同样,我需要编写一个删除函数,这样当我删除一个文本字段时,焦点会自动转移到前一个文本字段。

任何答案将不胜感激。谢谢。

最佳答案

您始终可以返回 NO 并手动更改 textField 文本。我想你需要的是这样的东西。

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];
int previousTag = textField.tag;

if ([string isEqualToString:@""]) {//backspace button
if (previousTag==0) {//added to prevent crashing in first tf
return YES;
}
UITextField *tempField2=(UITextField *)[self.view viewWithTag:previousTag-1];

textField.text=string;
[tempField2 becomeFirstResponder];
return NO;

}
for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if([myCharSet characterIsMember:c])
{
if((previousTag == 9) && ([textField10.text length] >0))
{
return NO;
}

UITextField *tempField=(UITextField *)[self.view viewWithTag:previousTag+1];
if([tempField.text length] > 0)
{
textField.text=string;
[tempField resignFirstResponder];
return NO;
}
textField.text=string;
[tempField becomeFirstResponder];
return NO;

}
else{
return NO;
}


}


return YES;
}

关于iphone - 根据条件将文本字段的焦点移动到另一个文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8386401/

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