首页 文章

在UITextView上获取特定行的文本

提问于
浏览
0

最后,我想知道UITextView中最后一个字符的位置 . 我能够通过使用以下内容找出y位置:

CGSize size = [textView.text sizeWithFont:textView.font constrainedToSize:CGSizeMake(textView.frame.size.width-16,10000)lineBreakMode:UILineBreakModeClip];

但是为了获得x位置,我需要从textview的最后一行获取文本 . 我尝试从textView.text一次删除一个字符,直到size.height更改为实现该效果,但我意识到,当考虑到linebreak时,并不总是等于我想要的 .

有人建议吗?我花了一整天的时间试图弄清楚这个......

2 回答

  • 0

    我想我通过使用caretRectForPosition在textview中获取光标的像素位置找到了一个解决方案 .

    // move cursor to the end of the text
    textView.selectedRange = NSMakeRange([textView.text length], 0);
    CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin;
    
  • 2

    您可以在uitextview或uitextfield中评估文本大小,如下所示 ``

    UIFont * myFont = [UIFont fontWithName:@"Gill Sans" size:19];
        CGSize textSize = [@"your text" sizeWithFont: myFont constrainedToSize:CGSizeMake(textFiled.frame.size.width, textFiled.frame.size.height) lineBreakMode:UILineBreakModeWordWrap];
        NSlog(@"this is your text size W=%f H=%f",textSize.width, textSize.height);
    

相关问题