目前我的应用程序动态创建文本字段。其中一些字段将允许所有字符,但其中一些我想只是数字(或我选择的任何字符集)。
我在这里找到了以下代码:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
//Allows backspace
if([string length]==0){
return YES;
}
//Character set limits to numeric characters
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if ([myCharSet characterIsMember:c]) {
return YES;
}
}
return NO;
}
这是创建文本字段的位置:
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(x, y, width, 30)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.font = [UIFont systemFontOfSize:15];
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.keyboardType = UIKeyboardTypeDefault;
textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
textField.returnKeyType = UIReturnKeyDone;
textField.textAlignment = NSTextAlignmentCenter;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
但我不太确定如何将其实现为动态创建的文本字段?
任何帮助将不胜感激!
答案 0 :(得分:1)
要在文本字段上调用该方法,您需要在ViewController中实现UITextFieldDelegate
,并将textfield的delegate
属性设置为ViewController。
@interface DemoViewController () <UITextFieldDelegate>
@end
然后在实施中:
textfield.delegate = self;
那应该有用。未经测试但相当简单。