Xcode:如何只允许UITextView中的某些字符?

时间:2012-05-28 12:02:01

标签: xcode4 uitextview

如何只允许UITextView中的某些字符?

我想只允许英文字符&数字与数字阿拉伯字符。

我找到了很多解决方案,但UITextField不是UITextView!

1 个答案:

答案 0 :(得分:2)

您可以使用textView:shouldChangeTextInRange:replacementText:docs)的UITextViewDelegate方法:

  

只要用户键入新文本,文本视图就会调用此方法   字符或删除现有字符。执行此   方法是可选的。您可以使用此方法替换之前的文本   致力于文本视图存储。例如,拼写检查   可能会使用此方法用正确的替换拼写错误的单词   拼写。

您应该检查replacementText参数是否包含非法字符。在这种情况下,您可以返回NO以防止插入文本。当插入多个字符的文本时,这可能会出现问题,并且不允许所有字符:允许插入(包括非法字符)或阻止它(包括允许的字符)?


这意味着您需要textViewDidChange:方法(docs):

  

文本视图调用此方法以响应用户启动的更改   到文本。不会以编程方式调用此方法   发起了改变。

调用此方法后,您可以检查UITextView的值,然后删除非法字符。


我认为最好使用这两种方法。第一个提供了用户输入时的最佳体验(根本不显示该字符,而不是首先显示该字符,之后被删除)。第二种方法可确保在粘贴某些文本时删除非法字符,例如。