我有一个UITextField,我需要在这个字段中只允许输入数字,逗号或点数。
如何检查此字符串是否包含任何字符而不是上述字符,如何替换/删除它们?
我的字段将存储费用,我只需要数字,逗号或点...
任何人都可以帮助我吗? 谢谢!
答案 0 :(得分:2)
对于文本字段,您可以使用UITextFieldDelegate
并实施textField:shouldChangeCharactersInRange:replacementString:
方法。根据文档,“只要用户在文本字段中键入新字符或删除现有字符,文本字段就会调用此方法。”在该方法中,您应该检查所有非数字字符并删除它们。
答案 1 :(得分:1)
您可以使用-textFieldDidEndEditing:
协议中的UITextFieldDelegate
方法。只要文本字段重新开始第一响应者状态(即结束编辑),就会调用此方法。这是检查输入的字符串的机会。如果您想在输入的每个字符后执行检查,请使用-textField:shouldChangeCharactersInRange:replacementString:
作为donkim的建议。
答案 2 :(得分:0)
而是检查字符串为什么不能将文本字段的键盘值指定为NumberPad。这样用户就无法输入字符串。
答案 3 :(得分:0)
您可以通过监控字段中的用户输入并自动删除不匹配的字符来完成此操作。创建IBAction方法:
- (IBAction)validateEntry:(id)sender;
然后将其附加到文本字段的编辑已更改事件。每当字段中的文本发生更改时,无论是来自用户键入还是来自用户粘贴文本,都会调用该方法。
在方法内部,您可以检查文本并删除有问题的字符,或者更礼貌地更新UILabel,告知用户他们输入了无效字符并禁用任何提交按钮,直到它被修复。