0

私は生産性アプリを構築しており、シミュレーターと iPhone 5 で簡単なテストを行っています。アプリには数値のテキスト フィールドが多数あり、負のエントリを要求することはありません。そのため、最初から、これらのフィールドのキーボードを「Numeric Decimal」に設定していました。

しかし、実際の iPhone デバイスでいくつかのテスト データを表示しているときに、奇妙なことに気付きました。どういうわけか、エントリが tableview と editview に負の値として表示されていました。それがいつ起こったのかはわかりませんが、もっと重要なことに、それがどのように起こったのかわかりません. インストールまたは更新時にデータは提供されません。問題のオブジェクトは、負の演算子キーを持たない数値 10 進キーパッドを使用して、デバイスに直接入力する必要がありました。

後でトラップできるように、何が起こったのでしょうか?

4

2 に答える 2

0

おそらく、どこかからコピーして貼り付けた値です。

テキスト フィールドへの貼り付けをブロックするのが最も簡単な解決策ですが、最もユーザー フレンドリーではありません。

ここで UITextFieldDelegate のドキュメントを確認してください。

textFieldDidEndEditing:たとえば、値をチェックしてそれに応じて処理するようなメソッドを設定できます。

于 2013-08-27T07:07:42.083 に答える
0

Int32 を使用する必要があったときに、コア データで Int16 を使用していたことが判明しました。オブジェクトを編集して、その数値を最初のテキスト フィールドよりも大きくすると、保存時に奇妙なことが起こり、負の値が格納されてしまいました。

于 2013-08-27T14:53:55.707 に答える