gpt4 book ai didi

ios - 当混合中有换行符时,UITextView firstRectForRange 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:51 27 4
gpt4 key购买 nike

我正在使用此方法将 NSRange 转换为 CGRect,因为它与 UITextView 相关:

- (CGRect)frameOfTextRange:(NSRange)range inTextView:(UITextView *)textView
{
UITextPosition *beginning = textView.beginningOfDocument;
UITextPosition *start = [textView positionFromPosition:beginning offset:range.location];
UITextPosition *end = [textView positionFromPosition:beginning offset:range.location+range.length];
UITextRange *textRange = [textView textRangeFromPosition:start toPosition:end];
CGRect rect = [textView firstRectForRange:textRange];
return rect;
}

This question的回答有人和我问同样的问题。上面的方法很适合这个:

this is a great text field yes it is findthistoken

不是这样的:

this is a great one
(new line)
(new line)
findthistoken

似乎只是忽略了有 2 个换行符的事实? :/

如何让它使用换行符?

最佳答案

你可以强制 self.textView 立即确保 textView 的布局

 [self.textView.layoutManager ensureLayoutForTextContainer:self.textView.textContainer];

将它放在您的 frameOfTextRange: 调用之前会给您正确的 rect。

关于ios - 当混合中有换行符时,UITextView firstRectForRange 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25604493/

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