编辑框textfield输入字符转大小写问题

编辑框textfield输入字符转大小写问题

2018年5月31日 周四

添加监听事件

[_textField addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingDidEnd];

[_textField addTarget:self action:@selector(textFieldEditingChanged:) forControlEvents:UIControlEventEditingChanged];

正常情况下,在text改变的时候就进行转换,这也是我们期望的,然而实际上不一定如愿。

- (void)textFieldEditingChanged:(UITextField *)textFeild{

    NSString *text = [textFeild.text uppercaseString];

    if (self.textEditingChangedBlock) {

        self.textEditingChangedBlock(text, self);

    }

    textFeild.text = text;

}

这跟跟self.textField.keyboardType = UIKeyboardType;有关系的。

1)当keyboard = UIKeyboardTypeASCIICapable 类型时,是可以直接进行转换的,如下图:

image.jpeg

2)当keyboard = UIKeyboardTypeDefault 类型时,即默认类型,采用的是当前的输入方式,当前是中文输入法,依次点击了“QWE”,但是会发现编辑框里的内容是“QQWQWE”(具体啥原因不太清楚),如下图:

image.jpeg

解决方法是,在编辑结束的时候进行转换

-(void)textFieldDidChanged:(UITextField *)textField {

    if (self.textFieldDidChanged) {

        self.textFieldDidChanged(textField);

    }

}

[cell setTextFieldDidChanged:^(UITextField *textField) {

    textField.text = [textField.text uppercaseString];

}];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容