限制用户在文本视图中输入滥用词

时间:2015-05-13 10:35:25

标签: ios iphone ios7

我正在开发一个用户只需输入圣言的应用程序。我希望限制用户不要输入滥用或成人字词。 我有一个很大的成人或滥用词汇列表,只要用户输入该词语就应该自动将其删除。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可能正在使用UITextField,因此您应该在文字发生变化后照看禁用字词:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    NSRange spaceRange = [newString rangeOfString:@" "];
    if (spaceRange.location != NSNotFound) { // it's a new word
        newString = [self stringWithoutForbiddenWords:newString];
    }
    textField.text = newString;
    return NO; // we set the textField text manually
}

- (NSString *)stringWithoutForbiddenWords:(NSString *)string {
    for (NSString *forbiddenWord in self.forbiddenWords) {
        NSRange forbiddenWordRange = [string rangeOfString:forbiddenWord];
        if (forbiddenWordRange.location != NSNotFound) {
            // remove the forbidden word
            string = [string stringByReplacingOccurrencesOfString:forbiddenWord withString:@""];        
        }
    }
    return string;
}

别忘了给你UITextField代表。

答案 1 :(得分:1)

这是一个非常简单的逻辑,顺便说一句,只有#34;圣言"看起来很有趣我希望你的意思是非侮辱性的。

  • 因此,为了限制滥用的词语,首先制作一个数组并存储所有滥用的词语。
  • 然后在code: [UIView transitionFromView:vwOne toView:vwTwo duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL] 检查每当用户按下"空间。
textView shouldChangeTextInRange: