2008-11-09 81 views
1

我有一个显示货币值的自定义UILabel子类。我只希望用户能够输入数字,并让视图将这些数字格式化为货币值 - 如收银机。这使得UITextField成为这种输入的不恰当选择。带键盘输入的自定义UIView?

我已经覆盖则hitTest:使的UILabel将返回本身 - 这显然是一个错误。另外,我重写了canBecomeFirstResponder和becomeFirstResponder以返回YES。虽然这些方法都没有被调用。

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

+0

您是否试过使用`UIControl`继承并包装`UILabel`实例? – postmechanical 2015-11-03 22:52:21

回答

1

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

编辑 - 实际上,严格来说,你甚至不需要继承它。只需实现委托方法(-textField:shouldChangeCharactersInRange:replacementString :),将标签添加到UITextField,然后根据需要设置标签的文本格式。

+0

一个问题:插入点可以隐藏吗? – Alex 2008-11-09 22:57:06

1

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

谢谢!