UITextField 仅允许使用字母数字字符
我将如何允许在 iOS UITextField
中仅输入字母数字字符?
How would I go about allowing inputting only alphanumeric characters in an iOS UITextField
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
将 UITextFieldDelegate 方法
-textField:shouldChangeCharactersInRange:replacementString:
与包含您想要允许的字符反转的 NSCharacterSet 结合使用。例如:请注意,您需要声明您的类实现该协议(即
@interface MyClass : SomeSuperclass
)并将文本字段的delegate
设置为你的班级的实例。Use the UITextFieldDelegate method
-textField:shouldChangeCharactersInRange:replacementString:
with an NSCharacterSet containing the inverse of the characters you want to allow. For example:Note that you’ll need to declare that your class implements the protocol (i.e.
@interface MyClass : SomeSuperclass <UITextFieldDelegate>
) and set the text field’sdelegate
to the instance of your class.Swift 3 版本
当前接受的答案方法:
另一种同等功能的方法:
Swift 3 version
Currently accepted answer approach:
Another equally functional approach:
这就是我的做法:
查看 UITextFieldDelegate 参考 也是如此。
This is how I do it:
Check out the UITextFieldDelegate Reference too.
我找到了一个简单且有效的答案并想分享:
将事件 EditingChanged 的 UITextField 连接到以下 IBAction
I found a simple and working answer and want to share:
connect your UITextField for the event EditingChanged to following IBAction
Swift 中的 RegEx 方式:
The RegEx way in Swift:
对于斯威夫特:
将 EditingChanged 事件的 UITextField 连接到以下 IBAction:
For Swift:
Connect your UITextField for the event EditingChanged to following IBAction:
您必须使用
textField delegate
方法,并使用方法textFieldDidBeginEditing
、shouldChangeCharactersInRange
和textFieldDidEndEditing
来检查人物。请参阅此链接了解文档。
You will have to use the
textField delegate
methods, and use methodstextFieldDidBeginEditing
,shouldChangeCharactersInRange
andtextFieldDidEndEditing
to check for the characters.Please refer to this link for the documentation.