0

UITextFieldDelegate のメソッド textField:shouldChangeCharactersInRange:replacementString を実装しており、入力したテキストを (通貨として) 書式設定して UITextField の text プロパティに保存しているため、"NO" を返しています。

しかし、IBAction に関連付けられたテキスト フィールドに「Editing Changed」イベントもあります。NO を返すと、このアクションは呼び出されません。YES を返すと呼び出されますが、テキスト フィールド内のすべての文字が 2 倍になってしまいます。

  1. これは正しい動作ですか?これが事実であると言っている信頼できる情報源を見つけることができません。役立つAppleのドキュメントへのリンクで答えることができれば。

  2. textField:shouldChangeCharactersInRange... メソッドの最後にこのイベントを「手動で」起動する方法はありますか? (デリゲートの実装から IBAction が定義されているクラスへのアクセス権がありません。)

4

1 に答える 1

4

textField:shouldChangeCharactersInRange:replacementString (UITextField のカテゴリで宣言) の実装の最後に、以下を送信する必要がありました。

[self sendActionsForControlEvents:UIControlEventEditingChanged];

これは「手動で」イベントをレスポンダーチェーンに起動しますが、そうでなければ NO を返すことで抑制されます。

于 2013-02-14T03:30:53.203 に答える