彩色 UITextview 的自动更正问题

Posted

技术标签:

【中文标题】彩色 UITextview 的自动更正问题【英文标题】:Autocorrect issue with a colored UITextview 【发布时间】:2012-11-20 23:21:00 【问题描述】:

我在我的应用程序中使用了一个带有蓝色背景的文本视图。

启用自动更正后,只要它更正一个单词,就会在该单词周围形成一个白框,并且文本的颜色也会发生变化。

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

【问题讨论】:

我有同样的问题,但我找不到答案......有人吗?我提供赏金来回答这个问题(不会被应用商店拒绝) 来吧!甚至没有评论?没有其他人曾经对彩色 UITextView 使用自动更正吗?只有我(和 OP)有这个问题吗?至少发表评论并说“我遇到了同样的问题,我认为......” 对不起。我进行了一些搜索,但没有找到任何有用的信息。 未回答的类似问题:***.com/questions/12172006/… @JSuar 感谢您的链接。我以前已经看过了。不幸的是,还没有答案... 【参考方案1】:

不,我认为您无法立即更改叠加层的颜色或文本颜色..

这很难,如果你在视图的- (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;
        
    

它确实有效..但这会导致光标丢失,并禁用任何选择:(

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

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

【讨论】:

自动更正在我的应用程序中是必须的,我无法禁用它。会尝试你的代码,希望我能弄清楚。感谢您的努力。 是的,我是这么认为的,祝你好运!如果你发现了什么,请告诉我! :( 似乎没有找到答案。我会奖励你赏金,因为浪费了它会很可惜。 太糟糕了:(如果有人找到真正的答案,我将重新开始赏金!【参考方案2】:

这可能有其他副作用我目前正在调查其他所谓的,但覆盖 UITextView 中的 firstRect(for range) 并返回 CGrect.Zero 会删除突出显示。

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

【讨论】:

以上是关于彩色 UITextview 的自动更正问题的主要内容,如果未能解决你的问题,请参考以下文章

UITextView 和浮动自动更正窗口的位置

如何以编程方式关闭 UITextView 中的自动更正弹出框?

有没有办法让 iOS 的自动更正忽略 UITextView 中的单个单词或正则表达式?

你能以编程方式接受 UITextView 中的拼写更正吗?

可变高度 UITextView

是否可以删除 iOS Quicktype 键盘但保持自动更正?