在我的iPhone应用中,我有一个UITextField
ans文字字段值被带入NSString
,我想查找特定字符 "
输入
我该怎么做?
UITextField *textField;
NSString *String=textField.text;
-(IBAction)FindCharecter:(id)sender
{
// if String Contain ",then i wish to print @"Found symbol"
}
答案 0 :(得分:4)
UITextField *textField;
NSString *string=textField.text;
if ([string rangeOfString:@"\""].location == NSNotFound) {
NSLog(@"string does not \"");
} else {
NSLog(@"string contains \"");
}
检查这个
答案 1 :(得分:2)
试试这个:
-(IBAction)FindCharecter:(id)sender
{
// if String Contain ",then i wish to print @"Found symbol"
if ([String rangeOfString:@"\""].location != NSNotFound) {
NSLog(@"Found");
}
else{
NSLog(@"Not Found");
}
}
答案 2 :(得分:0)
实施UITextField
-(NSString *)ValidateSearchString:(NSString *) aString{
NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"YourString"] invertedSet];
if ([aString rangeOfCharacterFromSet:set].location != NSNotFound) {
return @"Not Found";
}
return @"Found";;
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog("particular character %@",[self ValidateSearchString:string]);
// string will contain the particular character typed;
return YES;
}
答案 3 :(得分:0)
您可以使用shouldChangeCharactersInRange
委托方法。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@"\""])
{
NSLog(@"Entered \" ");
}
}
或者您可以使用rangeOfString
类的NSString
。
if ([textField.text rangeOfString:@"\""].location == NSNotFound)
{
NSLog(@"Entered \" ");
}
textField:shouldChangeCharactersInRange:replacementString:
询问代表是否应更改指定的文本。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
<强>参数强>
<强>的TextField 强>
The text field containing the text.
<强>范围强>
The range of characters to be replaced
<强>字符串强>
The replacement string.
返回值
如果应替换指定的文本范围,则为YES;否则,不 保留旧文本。讨论
只要用户键入新文本,文本字段就会调用此方法 文本字段中的字符或删除现有字符。 可用性
Available in iOS 2.0 and later.
<强> rangeOfString 强>:
查找并返回给定字符串第一次出现的范围 在接收器内。
- (NSRange)rangeOfString:(NSString *)aString
<强>参数强>
<强> ASTRING 强>
The string to search for. This value must not be nil. Important: Raises an NSInvalidArgumentException if aString is nil.
返回值
NSRange结构给出接收器中的位置和长度 第一次出现aString。如果aString是,则返回{NSNotFound,0} 未找到或为空(@“”)。
<强>讨论强>
在没有选项的情况下调用
rangeOfString:options:
。此方法检测所有无效范围(包括具有负数的范围) 的长度)。对于与OS X v10.6及更高版本链接的应用程序,请执行此操作 错误导致异常;对于早先链接的应用程序 发布时,此错误会导致警告,该警告只显示一次 按应用程序执行。可用性
在NSString.h中声明 在UITextField.h中声明
答案 4 :(得分:0)
您需要确认并实施UITextFieldDelegate
protocol。
1)如果你想在旅途中检查一个模式(当用户自己打字时),你需要实现
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
2)如果你想检查用户何时完成输入,你可能想要实现
- (void)textFieldDidEndEditing:(UITextField *)textField
现在进行实际的比较过程
if([textFieldString rangeOfString:@"YOUR_COMPARISON_STRING"].location == NSNotFound){
//your pattern is not typed yet
}else{
//There it is..
}