ios - 在多个 uitextfields 之间切换

标签 ios uitextfield uitextfielddelegate

我已经实现了多个 UITextField 的,如果达到最大限制,我想切换到下一个文本字段。我已经实现了以下委托(delegate)方法,但由于某种原因它崩溃了并且在达到限制时没有切换到下一个文本字段...

任何帮助将不胜感激...

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

    NSLog(@"%s", __FUNCTION__);

    NSString *totalText = [textField.text stringByAppendingString:string];
    NSLog(@"Length : %d", [totalText length]);

    switch (textField.tag) {
        case FirstTextFieldTag: {

            if ([totalText length] > MaxLentgthTextField1) {
                [self.textField1 resignFirstResponder];
                [self.textField2 becomeFirstResponder];
            }

            break;
        }

        case SecondTextFieldTag: {

            if ([totalText length] > MaxLentgthTextField2) {
                [self.textField2 resignFirstResponder];
                [self.textField3 becomeFirstResponder];
            }

            break;
        }

        case ThirdTextFieldTag: {

            if ([totalText length] > MaxLentgthTextField3) {
                [self.textField3 resignFirstResponder];
                [self.textField4 becomeFirstResponder];
            }

            break;
        }

        case FourthTextFieldTag: {

            if ([totalText length] > MaxLentgthTextField4) {
                [self.textField4 resignFirstResponder];
                [self.textField5 becomeFirstResponder];
            }

            break;
        }

        case FifthTextFieldTag: {

            if ([totalText length] > MaxLentgthTextField5) {
                [self.textField5 resignFirstResponder];
                return NO;
            }

            break;
        }

        default:
            break;
    }

    return YES;
}

最佳答案

没有看到你的崩溃日志。这部分肯定是错误的

NSString *totalText = [textField.text stringByAppendingString:string];

文本字段的新文本不是通过追加更改的字符来计算的,而是通过更改给定范围内的字符来计算的

请尝试一下,然后告诉我们结果

NSString * totalText = [textField.text stringByReplacingCharactersInRange:range withString:string];

关于ios - 在多个 uitextfields 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23774427/

相关文章:

ios - 如何在 PFQueryTableViewController 中调用 queryForTable 从 Parse 云重新加载数据?

php - Apple 不保证推送的交付?

swift - 如何使我的文本字段边框在每次选择时更改为不同的颜色?

ios - 自定义类(委托(delegate)集)中未调用 textFieldShouldBeginEditing

ios - 边界碰撞检测

ios - 在 iPad 上更改 iOS 应用程序的 UserAgent

ios - 文本字段应该返回自动滚动屏幕

ios - 带有文本字段 : how dismiss keyboard works? 的 UIAlertController

ios - swift 2.0 - UITextFieldDelegate 协议(protocol)扩展不工作

ios - 我们可以在 UITextField 的扩展中调用委托(delegate)吗