gpt4 book ai didi

objective-c - UITEXTVIEW:获取最近在uitextview中输入的单词

转载 作者:可可西里 更新时间:2023-11-01 05:23:13 24 4
gpt4 key购买 nike

我想从 UITextView 中获取用户输入的最新单词。

用户可以在 UITextView 的任何地方输入一个词,在中间或在结尾或在开头。当用户完成输入并按下空格并使用“来自 UIMenuController 的建议”进行任何更正时,我会认为它是一个词。

示例:用户在文本中间某处的 UITextView 中输入“kimd”,他会得到一个自动更正“kind”的弹出窗口,他这样做了。在他这样做之后,我想捕获“kind”并在我的应用程序中使用它。

我在 Internet 上搜索了很多,但找到了有关用户最终何时输入文本的解决方案。我还尝试检测一个空格,然后进行向后搜索,直到找到一些文本后的另一个空格,这样我才能将其限定为一个词。但我认为可能有更好的方法来做到这一点。

我在某处读到 iOS 会缓存我们最近在文本字段或 TextView 中输入的文本。如果我能跳出最上面的那个,那就是我想要的。我只需要处理那个对象。

非常感谢您的帮助。

注意:用户可以在 UItextview 的任何地方输入文本。我需要最近输入的单词

谢谢。

最佳答案

//This method looks for the recent string entered by user and then takes appropriate action.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

//Look for Space or any specific string such as a space
if ([text isEqualToString:@" "]) {
NSMutableCharacterSet *workingSet = [[NSCharacterSet whitespaceAndNewlineCharacterSet] mutableCopy];

NSRange newRange = [self.myTextView.text rangeOfCharacterFromSet:workingSet
options:NSBackwardsSearch
range:NSMakeRange(0, (currentLocation - 1))];

//The below code could be done in a better way...
UITextPosition *beginning = myTextView.beginningOfDocument;
UITextPosition *start = [myTextView positionFromPosition:beginning offset:currentLocation];
UITextPosition *end = [myTextView positionFromPosition:beginning offset:newRangeLocation+1];
UITextRange *textRange = [myTextView textRangeFromPosition:end toPosition:start];

NSString* str = [self.myTextView textInRange:textRange];
}
}

关于objective-c - UITEXTVIEW:获取最近在uitextview中输入的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14085034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com