1

我有一个用于显示货币值的自定义 UILabel 子类。我只希望用户能够输入数字并让视图将这些数字格式化为货币值——就像收银机一样。这使得 UITextField 不适合这种输入。

我已经覆盖了 hitTest: 以便 UILabel 将返回自身——这显然是一个错误。另外,我已经覆盖了 canBecomeFirstResponder 和 becomeFirstResponder 以返回 YES。但是,这些方法都没有被调用。

我只想让用户输入数字并使用退格键。我已经实现了 UITextInputTraits,但是没有出现键盘。那么,这可以做到吗?如果是这样,我错过了什么?

4

2 回答 2

1

我做过这样的事情。子类 UITextField,使其文本颜色清晰,并在其顶部粘贴标签以显示格式化版本。

编辑-实际上,严格来说,您甚至不需要对其进行子类化。只需实现委托方法 (-textField:shouldChangeCharactersInRange:replacementString:),将标签添加到 UITextField,然后根据需要设置标签文本的格式。

于 2008-11-09T22:27:04.713 回答
1

好的,我已经回答了我自己的问题:放置在 UITextView 顶部的 UILabel 也会隐藏插入点,但仍然可以成为第一响应者并获得输入。

谢谢!

于 2008-11-09T23:07:06.757 回答