Textfield文本匹配文本文件中的数组

时间:2011-07-09 17:29:56

标签: cocoa-touch textfield

这是我的代码,用于将每个单词从文本文件转换为NSArray,但是当我尝试将数组中的一个单词与我的文本字段匹配时,它根本不起作用。

-(NSString*) replaceBadWords:(NSString*)userText {

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"badwords" ofType:@"txt"];
NSString *fileContents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
NSArray *lines = [fileContents componentsSeparatedByString:@"\n"];
NSLog(@"lines: %@", lines);

for(NSString* s in lines){
    userText =[userText stringByReplacingOccurrencesOfString:s withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0,[userText length])];
}

return userText;
}

- (void)textFieldDidChange:(NSNotification *)notif {
    NSLog(@"textfielddidchange");
    NSString *tmp = [self replaceBadWords:Name.text];
    NSLog(@"tmp: %@", tmp);
    if(![tmp isEqualToString:Name.text])
        Name.text = tmp;
}

只要用户键入新的单词/字母,当文本字段文本发生更改时,就会触发此代码。任何想法为什么这不起作用?

最后,我只想查看文本域文本是否与文本文件中的单词匹配,如果是,则生成textfield.text,nil。但是这段代码没有这样做,我只需要修复它。

2 个答案:

答案 0 :(得分:1)

if(![tmp isEqualToString:Name.text])

意味着它们不应该相同。那是你想要的吗?

答案 1 :(得分:1)

使用此:link

我认为你需要:

- (void)textFieldDidBeginEditing:(UITextField *)textField

,因为:

- (void)textFieldDidChange
在第一封写完第一封信之后,一遍又一遍地开火。