彩色UITextview的自动更正问题

时间:2012-12-03 13:22:33

标签: ios uitextview autocorrect

我在我的应用中使用了蓝色背景的文本视图。

启用自动更正后,无论何时更正单词,都会在单词周围形成一个白框,文本的颜色也会发生变化。

关于如何阻止这种影响的任何想法?

2 个答案:

答案 0 :(得分:4)

不,我认为你无法改变叠加层的颜色或开箱即用的文字颜色。

这很难,如果你在视图的- (void) layoutSubviews {..}中放置一个断点,你会看到UIKit在文本上面画了一个'UITextSelectionView'......

我试图将UITextView子类化,以查看它的layoutSubviews是否被触发了,它似乎确实如此!

所以我尝试删除叠加层:

- (void) layoutSubviews {
    [super layoutSubviews];

    for (UIView *subview in self.subviews) {
        if ([NSStringFromClass([subview class]) isEqualToString:@"UITextSelectionView"]) {
            DLog(@"Subview %@", [subview debugDescription]);
            [subview removeFromSuperview];
            break;
        }
    }
}

它工作..但是这会导致错过光标,并禁用任何选择:(

我认为你必须禁用自动更正..

如果有人找到真正的答案,我会重新开始赏金!

答案 1 :(得分:0)

这可能有其他副作用我正在调查其他什么叫这个,但是在UITextView中覆盖firstRect(for range)并返回CGrect.Zero会删除突出显示。

override public func firstRect(for range: UITextRange) -> CGRect {
     return CGRect.zero;
}