1. 程式人生 > >iOS開發之限制只輸入數字和字母

iOS開發之限制只輸入數字和字母

首先,根據需求,定義一個巨集:

#define NUM @"0123456789"//只輸入數字
#define ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"//只輸入字母
#define ALPHANUM @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"//數字和字母

給需要限制的UITextField設定代理:

_passWordTF.delegate = self;

實現UITextFieldDelegate代理方法:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange
)range replacementString:(NSString *)string { NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ALPHANUM] invertedSet]; NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; return [string isEqualToString:filtered]; }