从 UITextView 中的点击获取单词

Posted

技术标签:

【中文标题】从 UITextView 中的点击获取单词【英文标题】:Get word from tap in UITextView 【发布时间】:2012-10-14 17:07:42 【问题描述】:

我想从水龙头里得到一个字。以下函数的sender来自UITextView上的UIGesture句子

- (IBAction)printWordSelected:(id)sender 
    NSLog(@"Clicked");

    CGPoint pos = [sender locationInView:self.view];
    UITextView *_tv = sentence;

    NSLog(@"Tap Gesture Coordinates: %.2f %.2f", pos.x, pos.y);

    //eliminate scroll offset
    pos.y += _tv.contentOffset.y;

    //get location in text from textposition at point
    UITextPosition *tapPos = [_tv closestPositionToPoint:pos];

    //fetch the word at this position (or nil, if not available)
    UITextRange * wr = [_tv.tokenizer rangeEnclosingPosition:tapPos withGranularity:UITextGranularityWord inDirection:UITextLayoutDirectionRight];

    NSLog(@"WORD: %@", [_tv textInRange:wr]);

这是我已经拥有的,但它会将单词打印为 NULL

【问题讨论】:

尝试将 pos 更改为 pos = [sender locationInView:_tv] 然后移除 pos.y 调整。 哦,你真是个天才!非常感谢!! 请查看***.com/questions/8811909/… 【参考方案1】:

"尝试将 pos 更改为 pos = [sender locationInView:_tv] 然后移除 pos.y 调整。-rmaddy"

【讨论】:

这很好用,除非 UITextview 没有滚动。但是当我们滚动 textview 时,不会打印正确的单词。

以上是关于从 UITextView 中的点击获取单词的主要内容,如果未能解决你的问题,请参考以下文章

在 UITextview 中获取被点击的单词

在 UITextView 中的特定单词上添加点击手势识别器

在 UITextview 中的单词中间点击空格时光标移动最后一行

当单词以@开头时,从键盘输入更改 UITextView 中的单词格式

如何从 UIPopover 中的 UIButton 在主 UIView 中创建 UITextView?

从 UITextView 获取文本