iOS输入限制字数时,避免与中文拼音拼写板冲突

描述:

textView输入文本有字数限制,比如100个字符。

直接用textView.text = [textview.text substringToIndex:100]来截取到100前的字符,会将键盘预输入的拼音都算入其中,导致到了100时,textView的text直接变成键盘中预输入的拼音。

解决办法:

判断预输入,预输入文字不计入

- (void)textViewDidChange:(UITextView *)textView{
    NSString  *nsTextContent = textView.text;
    NSInteger existTextNum = nsTextContent.length;

    if (textView.markedTextRange == nil) {
        // 没有预输入文字
        if (existTextNum > 100){
            //截取到最大位置的字符
            NSString *s = [nsTextContent substringToIndex:100];
            [textView setText:s];
        }
    }
}

BY-Chu

参考方案

原文地址:https://www.cnblogs.com/widgetbox/p/12246828.html

时间: 2024-10-21 19:53:25

iOS输入限制字数时,避免与中文拼音拼写板冲突的相关文章

详释(常见UITextView 输入之字数限制)之一---固定长度

好久没有写文章了,今天上来写写,发现增多了markDown编辑器.挺不错,后续研究一下,今天暂写文章先.好了,不废话. 如题,相信大家看到这个标题都不想看文章了,这有什么好说的,网上一搜一大把.好吧,自认为是一搜一大把的跳过,有兴趣的就看完...... 对于限制UITextView输入的字符数.相信大家在网上见得最多的是实现UITextViewDelegate - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSR

jQuery实现的计算textarea可输入剩余字数

jQuery实现的计算textarea可输入剩余字数:textarea一般是用来输入文字性内容的,不过出于各种原因的考虑,文字的数量一般是受到限制的,下面就通过实例代码介绍一下,如何实现此效果,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy

ios--uitextfield动态限制输入的字数

1.定义一个事件: -(IBAction)limitLength:(UITextField *)sender { bool isChinese;//判断当前输入法是否是中文 if ([[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString: @"en-US"]) { isChinese = false; } else { isChinese = true; } if(sender == self.txtN

JS实现动态提示文本框可输入剩余字数(类似发表微博数字提示)

一.实现效果: 为了更直观的体现用户在文本框输入文本时能看到自己输入了多少字,项目中需要通过判断提示文本框剩余可输入字数. html & JS: 1 <div> 2 <textarea name="content" id="content" onkeyup="javascript:checkWords(this);" onmousedown="javascript:checkWords(this);"

iOS 输入地点 显示当前位置地图并用大头针标注

废话不多说 直接上项目工程  ,还是 先看下效果图吧! 项目中有两个文件,chonViewController 和mapLocation文件 ,mapLocation 文件用于地标显示 并有附加信息,昨天做得时候附加信息显示正常,今天想写点博客 却不显示了 ,很郁闷! 新建工程后 记得加入类库,MapKit.framework 具体添加方法 这里不在说明了 下面 看下 chonViewController.h 文件 代码如下: #import <UIKit/UIKit.h> #import &

visual studio 2015 IOS开发连接mac时提示错误couldn&#39;t connect to xxxx, please try again的一个方法

本人使用虚拟机MAC.原本使用虚拟机中的VS2015连接正常没有问题. 但是当把MAC的虚拟机文件COPY到另一个机器上,提示“couldn't connect to xxxx,  please try again”. 经过查找和升级MAC中的Xamarin.ios都不行.后面尝试添加新的MAC(在VS的连接页面左下角有一个“add mac..."),直接输入MAC的IP,竟然连接上了. 分析原因可能是自动找到的使用MAC机器名的有些问题,但不确定.仅供各位参考. visual studio 2

文本域textarea显示输入剩余字数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf

iOS开发 GPS定位 指定语言 返回中文地点

在iOS开发中,用到定位时经常会遇到这个头疼的问题:系统语言为英文时返回英文或拼音,系统语言是中文时才返回中文. 下面是强制系统获取的定位地点为中文.方案是网上的,但优化了一下,当逆地理编码结束后才恢复系统语言,避免一些极端情况下的不生效问题. 实测可行.有问题欢迎留言. ` -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:

iOS输入验证 正则 NSPredicate

iOS输入验证 正则 NSPredicate NSPredicate NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern]; Format: (1)比较运算符>,<,==,>=,<=,!= 可用于数值及字符串 例:@"number > 100" (2)范围运算符:IN.BETWEEN 例:@"number BETWEEN