3

UITextField のキャレット位置にテキストを挿入する簡単な方法はありますか? いくつかの特殊文字を使用したカスタム キーパッドを使用していますが、これをうまく機能させることができません。私は任意の入力を許可しませ。キーパッドは約 20 の特殊文字に制限されており、その他はすべて拒否されます。

グローバル クリップボードを使用して挿入する方法は、VoiceOver をオンにすると、使用するたびに挿入される文字の代わりに「貼り付け」と表示されるため、悪い方法です。これは十分ではありません。

すべてが貼り付けソリューションを参照するだけなので、代替ソリューションを見つけることは非常に難しいようです。

4

2 に答える 2

6

解決策は私が思っていたよりも簡単でした:

[self insertText:string];
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, string);

これは、選択、キャレット位置などで適切に機能します。アル。

ただし、入力された文字列をアナウンスするときに適切なトーンを使用しません。挿入されたテキストをアナウンスするとき、VoiceOver はより深い声を使用します。VoiceOver のトーンを制御する方法について別の質問を立てました。

于 2012-09-25T08:21:54.843 に答える
0

UITextField は UITextInput プロトコルを実装しているため、選択またはカーソル位置のいずれかを返す「selectedTextRange」プロパティがあります。そのプロトコルで必要なメソッドから多くの興味深い情報を得ることができるので、それを読んでください。

于 2012-09-24T21:48:10.510 に答える