2012-12-03 6 views
6

私は自分のアプリで、青色の背景を持つテキストビューを使用しています。色付きのUITextviewの自動修正の問題

自動修正を有効にすると、単語を修正するたびに単語の周りに白いボックスが作成され、テキストの色も変更されます。

この効果をどのように停止するかについてのアイデアはありますか?

+0

私は同じ質問をしています。私は答えを見つけることができませんでした...誰ですか?私はこれに答えるための賞金を提供しています(それはアプリストアから拒否されません) – Cashew

+0

来る!コメントさえない?色付きのUITextViewでオートコレクトを使用する人はいませんか?この問題を抱えているのはちょうど私(そしてOP)ですか?コメントを投稿して "私は同じ問題を抱えていると思います..." – Cashew

+0

申し訳ありません。私は周りを検索し、有用な情報を見つけることができなかった。 – JSuar

答えて

4

いや、私はあなたがよ、あなたのビューの- (void) layoutSubviews {..}にブレークポイントを置けば

これは、ハード1は、ある..あなたは、オーバーレイや箱のうちtextcolorはの色を変更することはできませんだと思いますUIKitがテキストの上に 'UITextSelectionView'を描いているのを見てください。

私はそのレイアウトのサブビューが解雇されたかどうかを調べるためにUITextViewをサブクラス化しようとしました。

だから私は、オーバーレイ削除しようとした:

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