1

計算を実行し、編集が変更されたときにラベルを更新するテキストフィールドがあります。テキストフィールドは、textFieldを使用して通貨用にフォーマットされます:shouldChangeCharactersInRange:

ラベルも通貨用にフォーマットされています。

IOS 5では、番号がテキストフィールドに入力されると、ラベルが更新されます。

IOS 6では、値が別のテキストフィールドに入力されるまでラベルは更新されません。

編集を変更したり、textField:shouldChangeCharactersInRange:の動作を変えたりするために、IOS6またはXcode4.5で何か変更がありましたか?

4

1 に答える 1

1

はい、同じことに気づきました。shouldChangeCharactersInRangeが「NO」を返した場合にのみeditingChangedが呼び出されないことに注意してください。それでも、これはバグであり、Appleに報告する必要があると思われます。EditorialChangedイベントは、UITexFieldがUIControlから継承するイベントであり、shouldChangeCharactersInRangeが「NO」を返してもAppleが動作を停止する理由がわかりません。テキストフィールドは、変更があったかどうかを知る必要があります。

私が行っているのは、コードをeditingChangedイベントからshouldChangeCharactersInRangeメソッドに直接移動することです。つまり、「NO」を返す場合、editingChangedイベントで呼び出したいコードを埋め込みます。ほとんどの場合に機能するはずです。お役に立てれば。

于 2012-10-22T14:03:31.690 に答える