1

次の方法でオートコンプリートを有効にしたいUITextFieldがあります。

[self.textView setAutocorrectionType:UITextAutocorrectionTypeYes];

UITextViewにデリゲートを指定する場合を除いて、これは正常に機能します。デリゲートが設定されると、オートコンプリートは機能を停止します。デリゲートには、次の方法しかありません。

- (void)textViewDidChange:(UITextView *)textView
{
 self.textView.text = [self.textView.text stringByReplacingOccurrencesOfString:@"\n" withString:@""];

 int left = LENGTH_MAX -[self.textView.text length];
 self.characterCountLabel.text = [NSString stringWithFormat:@"%i",abs(left)];

}

オートコンプリートを有効にしてデリゲートを設定する方法を知っている人はいますか?

ありがとう!
トリスタン

4

3 に答える 3

0

これを入手する:あなたがする必要があるのは、インターフェース(.h)ファイルからUITextViewDelegateを削除することだけです。

デリゲートをnibのtextViewに設定することもできます。

奇妙だよね?私のために働いた、それがあなたの問題も解決することを願っています。

于 2012-12-11T13:02:43.933 に答える
0

のテキストを同時に変更しているため、オートコンプリートが壊れている可能性がありますUITextView

于 2010-03-25T01:21:45.153 に答える
0
NSRange r= [self.textView.text rangeOfString:@"\n"];
if(r.location!=NSNotFound) //must check before replacing new lines right away, otherwise spellcheck gets broken
{
    self.textView.text = [self.textView.text stringByReplacingOccurrencesOfString:@"\n" withString:@""];
}

この問題は、テキストが変更されるたびにテキストを変更する可能性のある処理(つまり、replaceメソッドの呼び出し)が原因で発生しました。解決策は、必要な場合にのみreplaceメソッドを呼び出すことでした。

于 2010-04-01T01:12:51.320 に答える