我在我的应用中使用了一个带有蓝色背景的 TextView 。
启用自动更正后,每当它更正一个词时,该词周围就会形成一个白框,并且文本的颜色也会发生变化。
关于如何阻止这种影响有什么想法吗?
最佳答案
不,我认为您无法立即更改叠加层的颜色或文本颜色..
这很难,如果您在 View 的 - (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;
}
}
}
它起作用了..但这会导致丢失光标,并禁用任何选择:(
我认为你必须禁用自动更正..
如果有人找到真正的答案,我将重新开始赏金!
关于ios - 彩色 UITextview 的自动更正问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13684167/