Ios 避免使用符号,我指定的符号除外
可能重复:NSString中的独立数字显示电话号码 目标:Ios 避免使用符号,我指定的符号除外,ios,objective-c,Ios,Objective C,可能重复:NSString中的独立数字显示电话号码 目标: 我只允许用户在文本字段中键入符号和数字。 如果用户类型不是我指定的,则以编程方式将其删除, 之后我会向用户发出警报 我怎么做?请回答哪些成员/财产/代表/接口有助于实现这些目标。 发送整个代码的次数超过。有一个名为UITextFieldDelegate的UITextField委托 实施该方法: -(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSSt
- 我只允许用户在文本字段中键入符号和数字。 如果用户类型不是我指定的,则以编程方式将其删除, 之后我会向用户发出警报
发送整个代码的次数超过。有一个名为UITextFieldDelegate的UITextField委托 实施该方法:
-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串
如果string
包含无效字符,则返回NO,并向用户发出警报
如何判断字符串中是否存在无效字符,下面是一个示例
NSCharacterSet * invalidCharacters = [NSCharacterSet characterSetWithCharactersInString:@"+-1234567890"] ;
invalidCharacters = [invalidCharacters invertedSet] ;
NSRange r = [searchString rangeOfCharacterFromSet:invalidCharacters] ;
if (r.location == NSNotFound) {
// there isn't invalid character
} else {
// there is
}
UITextField有一个名为UITextFieldDelegate的委托
实施该方法:
-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串
如果string
包含无效字符,则返回NO,并向用户发出警报
如何判断字符串中是否存在无效字符,下面是一个示例
NSCharacterSet * invalidCharacters = [NSCharacterSet characterSetWithCharactersInString:@"+-1234567890"] ;
invalidCharacters = [invalidCharacters invertedSet] ;
NSRange r = [searchString rangeOfCharacterFromSet:invalidCharacters] ;
if (r.location == NSNotFound) {
// there isn't invalid character
} else {
// there is
}
- (BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串
在字符串中,您将根据它找到字符,您可以随时显示所需内容。
- (BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串
在字符串中,您将根据它找到字符,您可以显示您想要的任何内容。您可以使用NSCharacterSet
在textField-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串的一个代理中使用以下代码:-
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789-,+"] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
NSLog(@"%@",filtered);
if(filtered.length>0)
{
//do your stuff
}
else
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Not allowed" message:@"You Enter not allowd charactore" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
}
return [string isEqualToString:filtered];
}
NSCharacterSet*cs=[[NSCharacterSet characterSetWithCharactersInString:@“0123456789*#“]inversedset]代码>用户只能在文本文件中输入提及字符0123456789-,+。您可以使用NSCharacterSet
在文本文件-(BOOL)textField:(UITextField*)textField应更改charactersinrange:(NSRange)range replacementString:(NSString*)string
的一个代表中使用以下代码:-
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789-,+"] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
NSLog(@"%@",filtered);
if(filtered.length>0)
{
//do your stuff
}
else
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Not allowed" message:@"You Enter not allowd charactore" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
}
return [string isEqualToString:filtered];
}
NSCharacterSet*cs=[[NSCharacterSet characterSetWithCharactersInString:@“0123456789*#“]inversedset]代码>用户只能在文本字段中输入提及字符0123456789-,+。将数字设置为
#define NUMBERS @"0123456789+-"
然后在文本字段的委托函数中
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs;
NSString *filtered;
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [string isEqualToString:filtered];"
}
我希望它对您有用将数字设置为
#define NUMBERS @"0123456789+-"
然后在文本字段的委托函数中
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs;
NSString *filtered;
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [string isEqualToString:filtered];"
}
我希望它对你有用这难道不应该是这样的吗:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField.tag == 3)
{
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."]; //This allows user type in only numbers and - +
for (int i = 0; i < [string length]; i++)
{
unichar c = [string characterAtIndex:i];
if (![myCharSet characterIsMember:c]) //Here, it checks if the entered character is in the characterSet, if it's not, it wouldn't allow the user go ahead.
{
return NO; //Restrict the user from entering other characters
}
}
return YES; //Allow the user enter the characters specified above
}
return YES;
}
-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串
{
如果(textField.tag==3)
{
NSCharacterSet*myCharSet=[NSCharacterSet characterSetWithCharactersInString:@“0123456789.”;//这允许用户仅键入数字和-+
对于(int i=0;i<[字符串长度];i++)
{
unichar c=[string characterAtIndex:i];
如果(![myCharSet CharacterizeMember:c])//这里,它会检查输入的字符是否在字符集中,如果不在,它将不允许用户继续。
{
返回否;//限制用户输入其他字符
}
}
返回YES;//允许用户输入上面指定的字符
}
返回YES;
}
这不应该是这样的吗:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField.tag == 3)
{
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."]; //This allows user type in only numbers and - +
for (int i = 0; i < [string length]; i++)
{
unichar c = [string characterAtIndex:i];
if (![myCharSet characterIsMember:c]) //Here, it checks if the entered character is in the characterSet, if it's not, it wouldn't allow the user go ahead.
{
return NO; //Restrict the user from entering other characters
}
}
return YES; //Allow the user enter the characters specified above
}
return YES;
}
-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串
{
如果(textField.tag==3)
{
NSCharacterSet*myCharSet=[NSCharacterSet characterSetWithCharactersInString:@“0123456789.”;//这允许用户仅键入数字和-+
对于(int i=0;i<[字符串长度];i++)
{
unichar c=[string characterAtIndex:i];
如果(![myCharSet CharacterizeMember:c])//这里,它会检查输入的字符是否在字符集中,如果不在,它将不允许用户继续。
{
返回否;//限制用户输入其他字符
}
}
返回YES;//允许用户输入上面指定的字符
}
返回YES;
}
Ok。您说过要使用此委托并使用逻辑运算符查找有效字符。但我听说,有很多动态的方法可以避免符号。角色集。你还有其他想法吗?好的。您说过要使用此委托并使用逻辑运算符查找有效字符。但我听说,有很多动态的方法可以避免符号。角色集。你还有别的想法吗?我试试看。“invertedSet”的用法是什么。invertedSet:返回一个字符集,该字符集只包含接收器中不存在的字符。我将尝试。“invertedSet”的用法是什么?invertedSet:返回一个字符集,该字符集只包含接收器中不存在的字符。@GenieWanted-Friend:发生了什么事。删除“!”根据我的目标,处于“如果”状态。@UdanPirappu-நண்பா, 正在删除该文件!将导致用户也键入字母。。您只想输入数字和-+符号。正确吗?@GenieWanted-நண்பா, 您的代码只允许键入字母。请查查那个朋友(நண்பா).நண்பா, 您是否运行了上述代码并尝试输入了一些值?它对我的效果与预期一样。请