确定是否已将非数字字符粘贴到UITextField中

时间:2010-08-31 15:50:09

标签: iphone objective-c cocoa-touch

对于专门的计算器,我想允许复制/粘贴文本字段,仅用于数值。因此,实际上只应粘贴数字字符,否则粘贴的字符串如果包含非数字字符则应被拒绝。

我在考虑使用UITextFieldDelegates textField:shouldChangeCharactersInRange:replacementString:方法检查粘贴的字符串是否有非数字字符。但NSString没有提供检查它是否包含单个集合中指定的字符的方法。因此,我需要检查几个集中的字符的出现,这是笨拙的,并且这些检查将针对将要输入的每个数字运行,这对我来说似乎是一些开销。 / p>

另一种方法是迭代并检查替换字符串中的每个字符是否在数字集中匹配。

无论哪种方式都可行,但我觉得我错过了一些东西。 你有什么建议吗?有没有方便的方法来实现这个目标?

1 个答案:

答案 0 :(得分:1)

  

但NSString没有提供检查它是否包含单个集合中指定的字符的方法

确实如此。

if([myString rangeOfCharacterFromSet:myCharacterSet].location ==NSNotFound) 
{
//means there is no character from specified set in specified string
}