iOS textView在调用textViewDidChange方法,九宫格相关中文输入的问题

问题一

iOS textView在调用 UITextViewDelegate 的 textViewDidChange方法,九宫格相关中文输入的问题

有时候,需要在textViewDidChange处理相关逻辑判断时,在中文输入的情况下,例如输入“中”,对应的拼音“zhong”, 在textViewDidChange的方法里会把拼音也算进去;这就导致输入中文时也输入不需要的英文。 还有例如在九宫格下输入@字符 textViewDidChange方法会调用两次;这就导致做@跳转会跳转两次 解决方法如下:

    NSString *lang = textView.textInputMode.primaryLanguage;//获取键盘输入模式
    if ([lang isEqualToString:@"zh-Hans"]){//九宫格
        //拼音输入的时候 selectedRange 会有值 输入完成 selectedRange 会等于nil
        //所以在输入完再进行相关的逻辑操作
        UITextRange *selectedRange = [textView markedTextRange];
        if (!selectedRange) {//拼音全部输入完成
            //写相关输入监听逻辑

        }else{//bar上的拼音监听
            //不做处理
        }
    }else{//英文情况下
        //写相关输入监听逻辑
    }

如遇到其他问题会继续补充

时间: 2024-07-29 15:10:40

iOS textView在调用textViewDidChange方法,九宫格相关中文输入的问题的相关文章

scala.io.StdIn 中的readInt、readDouble、readLine等方法看不到输入

问题:调用readDouble方法是,需要输入一个double值,但是屏幕上看不到输入的double值 解决方法: 安装 rlwrap brew search rlwrap,查询mac的brew包管理器中是否有 rlwrap,搜到之后,执行: brew install rlwrap,安装完成后执行: 安装-Xnojline rlwrap scala -Xnojline 完成上述步骤后,即可 看到 输入,如下图: 原文地址:https://www.cnblogs.com/wooluwalker/p

Swift使用WKWebView在iOS应用中调用Web的方法详解

这篇文章主要介绍了Swift使用WKWebView在iOS应用中调用Web的方法详解,使用WKWebView便等于使用和Safari中相同的JavaScript解释器,用来替代过去的UIWebView,需要的朋友可以参考下 自从iOS8开始,Apple引入了WKWebView欲代替UIWebView.相比而言,WKWebView消耗内从更少,功能也更加强大.让我们来看看WKWebView怎么使用吧! 0.初始化(1)首先需要引入WebKit库 复制代码代码如下: #import <WebKit/

ios 调用系统设置,并进入相关的设置项

应用程序调用系统设置,并进入相关的设置项 1.在iOS 5.1以前 可以使用URLs schemes,直接用openURL:打开 例如: NSURL*url=[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]; [[UIApplication sharedApplication] openURL:url]; prefs:root=LOCATION_SERVICES 这就是URL 打开位置服务 相应的打开其他的  可搜素关键词”iO

ios系统铃声调用方法

首先,这里我要说明这里并不是真正调用系统内部自带的铃声,因为苹果是不允许开发者调用的,没有给开发者接口:如果调用了就无法上线的!那为什么AppStore里面还有那么多app显示的效果是调用系统的铃声一样呢?为什么就能上线呢?其实不然,他们是使用了系统一样的铃声!也就说他们录制和系统铃声相似,然后包含进他们的bundle中来实现的. 所以,我们想要实现调用系统铃声的效果,只能通过这个途径:把音频文件捆绑经我们的bundle中来调用,播放! 给一个网址,里面好多苹果系统铃声(ios8的也有啦....

ios开发网络学八:NSURLSession相关代理方法

#import "ViewController.h" @interface ViewController ()<NSURLSessionDataDelegate> /** 接受响应体信息 */ @property (nonatomic, strong) NSMutableData *fileData; @end @implementation ViewController -(NSMutableData *)fileData { if (_fileData == nil)

IOS问题汇总:2015-1-9 IOS之NSArray 中调用的方法详解(转)

IOS之NSArray 中调用的方法详解 下面的例子以 NSArray *array = [NSArray arrayWithObjects:@“wendy”,@“andy”,@“tom”,@“jonery”,@“stany”, nil];1.获取数组中总共有多少个对象. -(NSUInteger)count; NSLog(@“%d”,[array count]); 2 2.获取数组中下标对应的元素对象.(下标是从0开始) -(id)objectAtIndex:(NSUInteger)index

iOS的layoutSubviews和drawRect方法何时调用

layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews.2.addSubview会触发layoutSubviews.3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化.4.滚动一个UIScrollView会触发layoutSubviews.5.旋转Screen会触发父UIView上的layoutSubviews事件.6.改变一个UIView大小的时候也会触发父UIView上的layoutS

【iOS和HTML 5交互】iOS中加载html5调用html方法和修改html5内容

近期项目开发中用到了这方面的技术了,那我们一起来看看. 1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webViewDidFinishLoad: 4.在代理方法中进行操作HTML5中的标签(CRUD-->增删改查) 1.用类选择器或者id选择器或者标签选择器等选择要进行操作的标签 2.把选择好的标签转换成字符串 3.webView调用stringByEvaluatingJavaScriptFromString方法

iOS APP启动时所有方法的调用顺序分析

一个应用程序的启动过程要包括代理的创建,控制器的加载和控制器view的加载,这其中有很多关于生命周期的方法,每个方法都是有先后顺序的,如果调用顺序拿不准,或者某段代码写的方法不恰当,就会遇到各种奇葩问题.本文不怕麻烦的在几乎所有启动时要调用的方法里都用了 __FUNCTION__ 打印.结果还有有些地方出人意料的 首先回顾一下应用程序的启动过程 ①.先加载Main函数 ②.在Main函数里的 UIApplicationMain方法中,创建Application对象 创建Application的D