HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ipad – 按删除键后UITextView caretRectForPosition错误值为最后一个字符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Web视图中更改了文本的方法,以检测当前插入符号位置的可见rect.

UITextPosition *endPos = self.SELEctedTextRange.end;   
CGRect rect = [self caretRectForPosition:endPos];
[self scrollRectToVisible:rect animated:NO];

除非我在文档末尾并按下键盘上的删除键,否则它的效果很好.@L_197_4@种情况下,它会滚动到文档的开头,这是意外的.

解决方法

我有一个类似的问题……它似乎是文本视图中的计时问题.
我的解决方案是:

答:检测来自caretRectForPosition的无效结果.在我的例子中,无效坐标似乎总是大的负值(-1.0似乎是i.o.!)或者是origin.y的’无限’.

B:在短时间后重新询问插入位置的文本视图.我检查了一些延迟值; 0.05似乎足够了.

代码

- (void)textViewDidChange:(UITextView *)pTextView {

    UITextPosition* endPos = pTextView.SELEctedTextRange.end;

    CGRect          caretRectIntextView = [pTextView caretRectForPosition:endPos];

    if ((-1.0 > CGRectGetMinY(caretRectIntextView)) ||
        (INFINITY == CGRectGetMinY(caretRectIntextView))) {
        NSLog(@"Invalid caretRectIntextView detected!");

        dispatch_after(dispatch_time(DISPATCH_TIME_Now,(int64_t)(0.05 * NSEC_PER_SEC)),dispatch_get_main_queue(),^{
                           // Recall
                           [self textViewDidChange:pTextView];
                        });
        return;


    }

    ... your code ...
}

大佬总结

以上是大佬教程为你收集整理的ipad – 按删除键后UITextView caretRectForPosition错误值为最后一个字符全部内容,希望文章能够帮你解决ipad – 按删除键后UITextView caretRectForPosition错误值为最后一个字符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。