我正在尝试将textview字符限制为英语。但是,如果我复制并粘贴非英文字符,我的textview将获取这些条目。任何人都可以帮我解决这个问题。 UITextView应该只采用英文字符(包括特殊字符,数字和空格)。或者当我点击完成时如果textview包含非英文字符,它应该验证并向我发送错误消息。
提前致谢。
以下是我的代码
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField == yourTextField)
{
NSCharacterSet *invalidCharSet = [[[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"] invertedSet] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:invalidCharSet] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
else
return YES;
}
此代码不允许我输入空格和特殊字符。需要帮助来解决这个问题。
答案 0 :(得分:0)
//我希望它对你有用
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField == yourTextField)
{
NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_!@#$%^&*()-+="];
s = [s invertedSet];
NSRange r = [string rangeOfCharacterFromSet:s];
if (r.location != NSNotFound) {
// alert code here
return NO;
} else {
return YES;
}
}
else
return YES;
}
答案 1 :(得分:0)
我想(还没试过)你可以getCharacters:
string
并迭代它们,然后在你允许的字符集上调用characterIsMember:
来验证每一个。{1}}。如果有任何失败,则返回NO
。