編輯框textfield輸入字符轉(zhuǎn)大小寫問題
2018年5月31日 周四
添加監(jiān)聽事件
[_textField addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingDidEnd];
[_textField addTarget:self action:@selector(textFieldEditingChanged:) forControlEvents:UIControlEventEditingChanged];
正常情況下吧黄,在text改變的時候就進行轉(zhuǎn)換搀暑,這也是我們期望的,然而實際上不一定如愿踏幻。
- (void)textFieldEditingChanged:(UITextField *)textFeild{
NSString *text = [textFeild.text uppercaseString];
if (self.textEditingChangedBlock) {
self.textEditingChangedBlock(text, self);
}
textFeild.text = text;
}
這跟跟self.textField.keyboardType = UIKeyboardType控硼;有關(guān)系的泽论。
1)當keyboard = UIKeyboardTypeASCIICapable 類型時,是可以直接進行轉(zhuǎn)換的卡乾,如下圖:
2)當keyboard = UIKeyboardTypeDefault 類型時翼悴,即默認類型,采用的是當前的輸入方式幔妨,當前是中文輸入法鹦赎,依次點擊了“QWE”谍椅,但是會發(fā)現(xiàn)編輯框里的內(nèi)容是“QQWQWE”(具體啥原因不太清楚),如下圖:
解決方法是古话,在編輯結(jié)束的時候進行轉(zhuǎn)換
-(void)textFieldDidChanged:(UITextField *)textField {
if (self.textFieldDidChanged) {
self.textFieldDidChanged(textField);
}
}
[cell setTextFieldDidChanged:^(UITextField *textField) {
textField.text = [textField.text uppercaseString];
}];