1

通貨値を表示するためのカスタム UILabel サブクラスがあります。私は、ユーザーが数字を入力できるようにし、ビューがそれらの数字を通貨値にフォーマットできるようにしたいだけです-レジのように。これにより、UITextField はこの種の入力には不適切な選択になります。

UILabel がそれ自体を返すように、すでに hitTest: をオーバーライドしました。これは明らかにバグです。また、canBecomeFirstResponder と becomeFirstResponder の両方をオーバーライドして、YES を返すようにしました。ただし、これらのメソッドはどちらも呼び出されていません。

ユーザーに数字を入力させ、バックスペースキーを使用させたいだけです。UITextInputTraits を実装しましたが、キーボードが表示されません。それで、これはできますか?もしそうなら、私は何が欠けていますか?

4

2 に答える 2

1

OK、私は自分の質問に答えました。UITextViewの上に配置されたUILabelも挿入ポイントを非表示にしますが、それでもファーストレスポンダーになって入力を取得できます。

ありがとう!

于 2008-11-09T23:07:06.757 に答える
1

私はこのようなことをしました。UITextField をサブクラス化し、テキストの色を明確にし、その上にラベルを貼り付けて、書式設定されたバージョンを表示します。

編集 - 実際、厳密に言えば、サブクラス化する必要すらありません。デリゲート メソッド (-textField:shouldChangeCharactersInRange:replacementString:) を実装し、ラベルを UITextField に追加し、必要に応じてラベルのテキストを書式設定するだけです。

于 2008-11-09T22:27:04.713 に答える