获取UITextView上特定行的文本

最终,我想知道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被考虑到。

任何build议任何人? 我已经花了整整一天的时间来试图找出这一个…

我想我find了一个解决scheme,通过使用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; 

你可以像这样在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);