2015-07-24 6 views

ответ

4
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
NSString *currentString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
int length = [currentString length]; 
if (length > 10) { 
    [yourNextTextfield becomeFirstResponder]; 
    return NO; // add the line 
} 
return YES; 
} 

выбор нет-2

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSUInteger newLength = [textField.text length] + [string length] - range.length; 
if (newLength >10) 
    { 
     [yournextTextfield becomeFirstResponder]; 
     return NO; 
    } 
return YES; 
} 

Swift

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
var currentString: String = textField.text!.stringByReplacingCharactersInRange(range, withString: string) 
var length: Int = currentString.characters.count 
if length > 10 { 
    yourNextTextfield.becomeFirstResponder() 
    return false 
    // add the line 
} 
return true 
} 

Другой выбор

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
var newLength: Int = textField.text!.characters.count + string.characters.count - range.length 
if newLength > 10 { 
    yournextTextfield.becomeFirstResponder() 
    return false 
} 
return true 
} 
+0

проблемы с этим код, когда я ввожу 10-ю цифру, 10-я цифра вставляется в следующее поле, и этого не должно быть. только курсор должен перейти в следующее поле, а не цифру. –

+0

показать обновленный код –

+0

- (BOOL) TextField: (UITextField *) TextField shouldChangeCharactersInRange: (NSRange) диапазоне replacementString: (NSString *) строка { NSString * currentString = [creditCardField.text stringByReplacingCharactersInRange: Диапазон withString: строка ]; Длина NSUInteger = [currentString length]; если (длина> = 11) { [card_monthField становитсяFirstResponder]; } возвращение ДА; } –

0
-(BOOL) textFieldShouldReturn:(UITextField*) textField 
{ 
    if (textField == txt1){ 
    [txt1 resignFirstResponder]; 
    [txt2 becomeFirstResponder]; 
    } 
    if (textField == txt2){ 
    [txt2 resignFirstResponder]; 
    } 
    return YES; 
} 

Не забудьте добавить делегат UITextFieldDelegate к вашему UITextField

2
-(BOOL)textFieldShouldReturn:(UITextField*)textField{ 

    NSInteger nextTag = textField.tag + 1; 

    // Try to find next responder 
    UIResponder* nextResponder = [textField.superview viewWithTag:nextTag]; 

    if (nextResponder) { 

    // Found next responder, so set it. 
    [nextResponder becomeFirstResponder]; 

    } else { 

    // Not found, so remove keyboard. 
    [textField resignFirstResponder]; 
    } 
    return NO; // We do not want UITextField to insert line-breaks. 
} 

, если у вас есть несколько текстовое поле вы также можете использовать этот

Смежные вопросы