下一個代碼僅在用戶輸入第三個字符時才起作用。我希望焦點在用戶輸入第二個字符時移動TextField,但仍然保留第一個TextField中的前兩個字符。如果我嘗試類似newString.length < 2
的東西,則在連續輸入2個字符時,我將獲得第一個字符UITextField
和第二個字符UITextField
。輸入2個字符後從UITextfield移動焦點
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (newString.length <= 2)
{
return YES;
}
else
{
NSInteger nextTag;
nextTag = textField.tag + 1;
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
[nextResponder becomeFirstResponder];
}
else {
[textField resignFirstResponder];
}
}
return YES;
}
你用'newString.length <= 1'試圖改變編輯? – zbMax
你在'else'中錯過了一個return語句。嘗試在那裏添加'return YES'。 –
^Typo。同樣的結果。 – Segev