Ios 目标C-自动从textfield导航到textfield
我需要有3个文本字段,每个文本字段应该只输入1个数字(文本字段的最大长度是1)。Ios 目标C-自动从textfield导航到textfield,ios,objective-c,uitextfield,Ios,Objective C,Uitextfield,我需要有3个文本字段,每个文本字段应该只输入1个数字(文本字段的最大长度是1)。 我的问题是,在用户输入数字后,如何从textfield1、textfield2、textfield3自动导航?实现textField:shouldchangeCharactersRange:replacementString:delegate方法。根据在文本字段中输入的文本,您可以在下一个文本字段中调用becomeFirstResponder 记住,你想做的事情有很多复杂因素。如果用户将一组文本粘贴到文本字段中,会
我的问题是,在用户输入数字后,如何从textfield1、textfield2、textfield3自动导航?实现
textField:shouldchangeCharactersRange:replacementString:
delegate方法。根据在文本字段中输入的文本,您可以在下一个文本字段中调用becomeFirstResponder
记住,你想做的事情有很多复杂因素。如果用户将一组文本粘贴到文本字段中,会发生什么情况?如果用户返回到已经有值的文本字段,会发生什么情况?实现
文本字段:shouldChangeCharactersRange:replacementString:
委托方法。根据在文本字段中输入的文本,您可以在下一个文本字段中调用becomeFirstResponder
记住,你想做的事情有很多复杂因素。如果用户将一组文本粘贴到文本字段中,会发生什么情况?如果用户返回到已经有值的文本字段,会发生什么情况?实现
文本字段:shouldChangeCharactersRange:replacementString:
委托方法。根据在文本字段中输入的文本,您可以在下一个文本字段中调用becomeFirstResponder
记住,你想做的事情有很多复杂因素。如果用户将一组文本粘贴到文本字段中,会发生什么情况?如果用户返回到已经有值的文本字段,会发生什么情况?实现
文本字段:shouldChangeCharactersRange:replacementString:
委托方法。根据在文本字段中输入的文本,您可以在下一个文本字段中调用becomeFirstResponder
记住,你想做的事情有很多复杂因素。如果用户将一组文本粘贴到文本字段中,会发生什么情况?如果用户返回到已经有值的文本字段,会发生什么情况?您可以使用以下代码:
- (BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string {
if (theTextField == textField1 && YOUR_CONDITION_TO_COMPLETION_OF_EDITING){
[textField2 becomeFirstResponder];
}
}
为其他文本字段添加类似的条件您可以使用以下代码:
- (BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string {
if (theTextField == textField1 && YOUR_CONDITION_TO_COMPLETION_OF_EDITING){
[textField2 becomeFirstResponder];
}
}
为其他文本字段添加类似的条件您可以使用以下代码:
- (BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string {
if (theTextField == textField1 && YOUR_CONDITION_TO_COMPLETION_OF_EDITING){
[textField2 becomeFirstResponder];
}
}
为其他文本字段添加类似的条件您可以使用以下代码:
- (BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string {
if (theTextField == textField1 && YOUR_CONDITION_TO_COMPLETION_OF_EDITING){
[textField2 becomeFirstResponder];
}
}
为其他文本字段添加类似条件也将textfield1、textfield2、textfield3的标记分别设置为0、1和2,然后尝试以下代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ((textField.text.length == 0 && string.length == 1 && [[NSCharacterSet decimalDigitCharacterSet] isSupersetOfSet:[NSCharacterSet characterSetWithCharactersInString:string]]) || string.length == 0) {
// Try to find next responder
if (!(string.length == 0))
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
return YES;
} else {
if (textField.text.length == 1) {
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
}
return NO;
}
}
- (void)changeResponder:(UITextField *)textField {
NSInteger nextTag = textField.tag + 1;
UIResponder *nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
}
将textfield1、textfield2、textfield3的标记分别设置为0、1和2,然后尝试以下代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ((textField.text.length == 0 && string.length == 1 && [[NSCharacterSet decimalDigitCharacterSet] isSupersetOfSet:[NSCharacterSet characterSetWithCharactersInString:string]]) || string.length == 0) {
// Try to find next responder
if (!(string.length == 0))
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
return YES;
} else {
if (textField.text.length == 1) {
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
}
return NO;
}
}
- (void)changeResponder:(UITextField *)textField {
NSInteger nextTag = textField.tag + 1;
UIResponder *nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
}
将textfield1、textfield2、textfield3的标记分别设置为0、1和2,然后尝试以下代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ((textField.text.length == 0 && string.length == 1 && [[NSCharacterSet decimalDigitCharacterSet] isSupersetOfSet:[NSCharacterSet characterSetWithCharactersInString:string]]) || string.length == 0) {
// Try to find next responder
if (!(string.length == 0))
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
return YES;
} else {
if (textField.text.length == 1) {
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
}
return NO;
}
}
- (void)changeResponder:(UITextField *)textField {
NSInteger nextTag = textField.tag + 1;
UIResponder *nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
}
将textfield1、textfield2、textfield3的标记分别设置为0、1和2,然后尝试以下代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ((textField.text.length == 0 && string.length == 1 && [[NSCharacterSet decimalDigitCharacterSet] isSupersetOfSet:[NSCharacterSet characterSetWithCharactersInString:string]]) || string.length == 0) {
// Try to find next responder
if (!(string.length == 0))
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
return YES;
} else {
if (textField.text.length == 1) {
[self performSelector:@selector(changeResponder:) withObject:textField afterDelay:0.2];
}
return NO;
}
}
- (void)changeResponder:(UITextField *)textField {
NSInteger nextTag = textField.tag + 1;
UIResponder *nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
}
谷歌
becomeFirstResponder
googlebecomeFirstResponder
googlebecomeFirstResponder
googlebecomeFirstResponder