Как я могу определить размер поля UITextView? - PullRequest
0 голосов
/ 13 мая 2011

Я пытаюсь определить размер размера textView вплоть до курсора, обрезав весь текст после курсора, а затем используя метод sizeWithFont NSString, например, так:

    NSString *string = [myTextView.text substringToIndex:myTextView.selectedRange.location];        
    CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:myTextView.frame.size lineBreakMode:UILineBreakModeWordWrap];

К сожалению, это никогда не возвращает совершенно правильный размер, возможно, потому что текст имеет поля, поэтому его фактическая ширина меньше ширины UITextView (спасибо ответчикам за этот вопрос за эту работу).

Так что мне нужно определить размер полей и вычесть их из размера UITextView, чтобы получить фактический размер текстовой области. Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

К сожалению, похоже, что ответ заключается в том, что в UITextView нет поля - вам просто нужно смоделировать его, поместив представление позади него и сузив UITextView. Если вам нужен фон для прокрутки текста, вы можете прослушать scrollViewDidScroll:.

1 голос
/ 14 мая 2011

Я бы предложил

CGSize tSize = myTextView.frame.size;
tSize.width -= 2 * myTextView.contentInset.left;
tSize.height -= 2 * myTextView.contentInset.top;
CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:tSize lineBreakMode:UILineBreakModeWordWrap];
...