【发布时间】:2011-01-08 22:22:12
【问题描述】:
场景:我有 4 个 UITextFields,只接受 1 个字符。很简单。
问题:在我输入 1 个字符后,我希望下一个 TextField 自动变为活动状态,而无需按下下一个(即我正在使用 UIKeyboardTypeNumberPad,并且没有 NEXT 按钮。(我知道我实际上可以创建一个下一个以编程方式按钮,但我不想走那么远,只需要在输入 1 个字符后下一个字段自动变为活动状态。
#define MAX_LENGTH 1
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if (![myCharSet characterIsMember:c]) {
return NO;
}
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 1) ? NO : YES;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == pc1) {
[pc2 becomeFirstResponder];
}else if (textField == pc2) {
[pc3 becomeFirstResponder];
}else if (textField == pc3) {
[pc4 becomeFirstResponder];
}else if (textField == pc4) {
[textField resignFirstResponder];
}
return YES;
}
【问题讨论】:
标签: delegates keyboard uitextfield