2010-12-11 44 views
0


我有一个UITextField,我只需要在这个字段中只允许输入数字,逗号或点。
如何检查此字符串是否包含上述任何字符,以及如何替换/删除它们?检查一个字符串是否包含字母并取消它们

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

谁能帮助我?
谢谢!

+0

你可以看到这个示例... http://cocoabugs.blogspot.com/2011/01/allowing-only-characters-and-numbers-in.html – 2011-01-07 04:05:44

回答

1

您可以使用UITextFieldDelegate协议中的-textFieldDidEndEditing:方法。只要文本字段退出第一个响应者状态(即结束编辑),就会调用此方法。这是检查输入的字符串的机会。如果您想在输入每个字符后执行检查,请按照donkim的建议使用-textField:shouldChangeCharactersInRange:replacementString:

0

而不是检查字符串为什么不能将文本字段的键盘值指定为NumberPad。这样用户将无法输入字符串。

+0

他们仍然可以粘贴任何他们想要的东西。 – 2010-12-11 18:05:02

+0

我想到了这一点,现在我正在使用数字键盘......但我需要能够键入逗号或点,基于语言环境......有没有办法自定义数字键盘以添加另一个按钮? – matteodv 2010-12-11 18:05:40

+0

@Matthew Frederick我也会阻止这...有没有办法自定义键盘或检查这个字符串? – matteodv 2010-12-11 18:07:02

2

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

+0

我想创建一个类似Matthew Frederick的答案中所述的场景......谢谢! – matteodv 2010-12-11 18:38:32

0

您可以通过监控字段中的用户输入并自动删除不匹配的字符来实现。创建一个IBAction为方法:

- (IBAction)validateEntry:(id)sender; 

然后将其附加到文本字段的编辑而改变事件。每次当字段中的文本发生变化时,都会调用该方法,无论是从用户输入还是从用户粘贴文本中。

在该方法内部,您可以检查文本并删除违规字符,或者更有礼貌地更新UILabel告诉用户他们已经输入了无效字符,并禁用任何提交按钮,直到它被修复。

+0

不幸的是,我不使用IB ...我会做这样的事情:用户在文本字段中键入somathing,还有字母或其他字符。但是,当他点击保存按钮时,必须检查该字符串,如果它包含不允许的字符,则会出现警告视图...是否可以这样做?不过谢谢你的回答! – matteodv 2010-12-11 18:36:23

相关问题