我在我的应用程序中使用蓝色背景的文本视图。
启用自动更正后,只要它更正一个单词,就会在该单词周围形成一个白框,并且文本的颜色也会发生变化。
关于如何阻止这种影响的任何想法?
我在我的应用程序中使用蓝色背景的文本视图。
启用自动更正后,只要它更正一个单词,就会在该单词周围形成一个白框,并且文本的颜色也会发生变化。
关于如何阻止这种影响的任何想法?
不,我认为您无法更改覆盖层的颜色或开箱即用的文本颜色..
这很难,如果您在- (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;
}
}
}
它有效..但这会导致光标丢失,并禁用任何选择:(
我认为您必须禁用自动更正..
如果有人找到真正的答案,我将重新开始赏金!
这可能有其他副作用我目前正在调查其他所谓的,但覆盖 UITextView 中的 firstRect(for range) 并返回 CGrect.Zero 会删除突出显示。
override public func firstRect(for range: UITextRange) -> CGRect {
return CGRect.zero;
}