我有一个用于显示货币值的自定义UILabel子类。我只希望用户能够输入数字并让视图将这些数字格式化为货币值 - 比如收银机。这使得UITextField成为这种输入的不恰当选择。
我已经覆盖了hitTest:所以UILabel将自行返回 - 这显然是一个错误。另外,我已经覆盖了canBecomeFirstResponder和becomeFirstResponder以返回YES。但是,这两种方法都没有被调用。
我只想让用户输入数字并使用退格键。我已经实现了UITextInputTraits,但键盘没有出现。那么,这可以吗?如果是这样,我错过了什么?
答案 0 :(得分:1)
我做过这样的事情。子类UITextField,使其文本颜色清晰,并在其上面贴上标签以显示格式化版本。
编辑 - 实际上,严格来说,你甚至不需要对它进行子类化。只需实现委托方法(-textField:shouldChangeCharactersInRange:replacementString :),将标签添加到UITextField,然后根据需要格式化标签的文本。
答案 1 :(得分:1)
好的,我已回答了我自己的问题:放在UITextView顶部的UILabel也会隐藏插入点,但仍然可以成为第一个响应者并获得输入。
谢谢!