iOS UITextField 输入字数限制 去除虚拟键盘输入控制

解放代理,解放小键盘,从根本解决问题

[textField addTarget:self action:@selector(textChange:) forControlEvents:UIControlEventEditingChanged];

- (void)textChange:(UITextField*)textField {
    static const int Max_Text_Length = 5;
    //获取当前键盘类型
    UITextInputMode *mode = (UITextInputMode *)[UITextInputMode activeInputModes][0];
    //获取当前键盘语言
    NSString *lang = mode.primaryLanguage;
    if ([lang isEqualToString:@"zh-Hans"]) {//如果语言是汉语(拼音)
        //取到高亮部分范围
        UITextRange *selectedRange = [textField markedTextRange];
        //取到高亮部分
        UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
        //如果取不到高亮部分,代表没有拼音
        if (!position){//当期超过最大限制时
            if (textField.text.length > Max_Text_Length) {//对超出部分进行裁剪
                textField.text = [textField.text substringToIndex:Max_Text_Length];
            }
        }
    } else {//如果语言不是汉语,直接计算
        if (textField.text.length > Max_Text_Length) {
            textField.text = [textField.text substringToIndex:Max_Text_Length];
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容