2

テキストフィールドの内容に基づいて自動修正のオン/オフを切り替えたい。

たとえば、ユーザーが「Machine tools」のようなフレーズを入力している場合、(ユーザーが入力する残りの単語については) 自動修正をオンにしたいのですが、たとえば、「www」のような Web アドレスの始まりを感知した場合は、 .mach..」 自動補正をオフにしたい。

入力されたコンテンツに基づいてテキストフィールドの autoCorrectionType を切り替えることにより、UITextFieldTextDidChangeNotification の受信時にこれを実行しようとしました。テキスト フィールドのこのプロパティの実際の値は変更されますが (NSLog で確認済み)、実際の修正動作は影響を受けません。そのため、編集セッションの開始時に自動修正がオンになっていた場合、テキスト フィールドを UITextAutoCorrectionTypeNo に設定した後も引き続きオンになります。したがって、「www.foogle...」は「www.google..」に修正されますが、これは私の本では常に望ましいとは限りません。

それで、テキストフィールドで(編集時に)その場で自動修正を有効/無効にする方法を見つけた人はいますか?

ありがとう。

4

2 に答える 2

6

UITextView は、自動的に行わない何かを内部的にリロードする必要があるため、外部からトリガーする必要があります。私が見つけた方法は、辞任して再びファーストレスポンダーになることです。

[textView resignFirstResponder];
// UITextAutoCorrectionType change
[textView becomeFirstResponder];

これは機能します。選択した範囲を復元することを忘れないでください。

ラファエル

于 2010-07-13T08:11:55.697 に答える
4

[textField reloadInputViews]自動修正タイプを設定したら実行できました。

これにより、キーボードの状態がリセットされることに注意してください。(文字の代わりに) 記号を表示していた場合reloadInputViews、キーボードを呼び出した後、文字にリセットされます。

于 2011-05-11T01:48:52.550 に答える