UITextFieldDelegate;
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
这个方法来控制的话,比如控制输入10个字符,当输入10个字符的时候,是无法用delete键进行修改的,这种情况下的用户体验很不好;
UIControlEvents有这样一种事件UIControlEventEditingChanged;
因此可以给UITextField添加这样一种方法
[self.wifi_name addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChange:(UITextField *)textField
{
//只取特定字符
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-"] invertedSet];
textField.text = [[textField.text componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
if (textField == self.wifi_name) {
if (textField.text.length >10) {
textField.text = [textField.text substringToIndex:10];
}
}
}