我有一个UITEXTFIELD,我只需要在此字段中允许数字,逗号或点打字。
如何检查此字符串是否包含上面的任何字符,以及如何替换/删除它们?

我的领域将存储成本,我只需要数字,逗号或点...

谁能帮我?
谢谢!

有帮助吗?

解决方案

您可以使用 -textFieldDidEndEditing: 来自 UITextFieldDelegate 协议。每当文本字段辞职第一响应者状态(IE结束编辑)时,此方法就会称为。这是检查输入的字符串的机会。如果要在输入的每个字符之后执行检查,请使用 -textField:shouldChangeCharactersInRange:replacementString: 正如唐金所建议的。

其他提示

对于Textfield,您可以使用 UITextFieldDelegate 并实施 textField:shouldChangeCharactersInRange:replacementString: 方法。根据文档,“每当用户在文本字段中键入新字符或删除现有字符时,文本字段调用此方法。”在该方法中,您应该检查所有非数字字符并将其删除。

相反,要检查字符串,为什么您不能将TextField的键盘值分配为NumberPad。因此,用户将无法键入字符串。

您可以通过监视字段中的用户输入并自动删除非匹配字符来做到这一点。创建一个IBACTION方法:

- (IBAction)validateEntry:(id)sender;

然后将其连接到文本字段 编辑更改 事件。每当字段中的文本都会更改,无论是从用户键入还是从用户粘贴文本中,该方法都会被调用。

在该方法中,您可以检查文本并删除有问题的字符,或者更有礼貌地更新一个Uilabel,该uilabel告诉用户他们输入无效字符并禁用任何提交按钮,直到修复为止。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top