2012-12-03 77 views
6

我在我的應用程序中使用藍色背景的textview。彩色UITextview自動更正問題

啓用自動更正功能時,每當更正單詞時,單詞周圍會形成一個白色框,文本的顏色也會發生變化。

關於如何阻止這種效應的任何想法?

+0

我有同樣的問題,我找不到答案...任何人?我爲此提供了一個獎勵(這不會被應用商店拒絕) – Cashew

+0

歡迎光臨!甚至沒有評論?沒有其他人使用自動更正顏色的UITextView?這只是我(和OP)是否有這個問題?至少發表評論並說「我有同樣的問題,我想......」 – Cashew

+0

對不起。我做了一些搜索,並找不到有用的信息。 – JSuar

回答

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; 
     } 
    } 
} 

和它的工作..但導致丟失光標,並禁用任何選擇:(

我認爲你必須禁用自動更正..

,如果有人發現一個真正的答案,我會重新開始賞金!

+0

自動更正是我的應用程序中必須的,禁用它。將嘗試你的代碼,並希望我能找出一些東西。感謝你的努力。 – Cashew

+0

是的,我認爲是,祝你好運!讓我知道如果你發現了什麼! – Tieme

+0

:(看起來沒有答案被發現,我會獎勵你的賞金,因爲這將是一個恥辱,讓它浪費。 – Cashew

0

這可能會對其他副作用我目前正在調查還有什麼調用這個,但在UITextView中覆蓋firstRect(用於範圍)並返回CGrect.Zero刪除高亮。

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