static int MaxLength = 16;
- (void)viewDidLoad {
[super viewDidLoad];
[self.myTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
}
//因为有markedText的时候没处理,所以在传textfiled.text的值时要再次截一下。比如注册用户名里正输入了一半的拼音,没点键盘的"选定",就点了注册按钮。
//NSString * account = _myTextField.text.length > MaxLength ? [_myTextField.text substringToIndex:MAXLenght] : _myTextField.text;
- (void)textFieldDidChange:(UITextField *)textField{
//中文拼音输入法,即textField.textInputMode.primaryLanguage为:zh-Hans(简体)、zh-Hant(繁体)的时候,输入还是拼音的时候就return;
//输入英文如果有选中效果的占位字母就return
if (textField.markedTextRange != nil) {
return;
}
NSString *tempString = textField.text;
// 去掉首尾的空格和回车
// tempString = [tempString stringByTrimmingCharactersInSet:NSCharacterSet.whitespaceAndNewlineCharacterSet];
if (tempString.length > MaxLength) {
tempString = [tempString substringToIndex:MaxLength];
}
textField.text = tempString;
}
- (void)dealloc {
[NSNotificationCenter.defaultCenter removeObserver:self];
}