我想获取当前输入的单词UITextView.得到一个完全键入的单词的一种方式可以在这里找到的UITextView:获取最近字的UITextView类型,不过,我想这个词,当它被输入(不管它是类型化的,初,中,末UITextView) .
我想是什么定义被输入的单词是一个空白字符后跟字母数字字符,或者如果当前位置(以某种方式弄清楚range.location)是开始,UITextView则后续的任何后续应该也被视为单词.当另一个空白字符跟随时,将完成一个单词的输入.
我尝试过:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text`
Run Code Online (Sandbox Code Playgroud)
但我找到正确的范围有问题.
简而言之:我需要在a中找到子字符串UITextView,其中substring是当前键入的字.
编辑:因为问题出现了.我正在使用NSLayoutManager并绑定NSTextContainer到它,然后将其作为layoutManager传递给a NSTextStorage.
EDIT2:主要问题(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text是range.location指标与指标不同,但总是少1.如果光标位于位置1,键入一个字母后,range.location将返回0.任何方法都可以吗?此外,text属性UITextView似乎也是1.当文本是foobar,我输出UITextView.text然后我得到了fooba.因此range.location+1返回异常Range {0, 1} out of bounds; string length 0'
编辑3:也许更容易得到我想要的结果NSTextStorage而不是UITextView?