Objective-c如何在textField上进行验证

时间:2013-03-14 06:59:21

标签: ios objective-c validation uitextfield

我想阻止用户不输入任何数据以及只输入空格。所以基本上必须至少有一个没有空格的角色。然后我还要删除单词开头的任何空格,这样第一个字母就是一个不是空格的字符。

修改

用户必须输入内容,如果用户在其之前输入了几个空格,那么我想修剪这些空格。我还想阻止用户输入空格。

示例

如果用户输入名称和姓氏,例如"詹姆斯迪恩"我想把第一个空间带走,而不是詹姆斯和迪恩之间的第二个空间。

5 个答案:

答案 0 :(得分:15)

UIViewController设为您的目的地UITextField的{​​{1}}并实施此方法:

delegate

答案 1 :(得分:5)

尝试这样可能对您有所帮助,这是我的代码

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range 

    replacementString:(NSString *)string{
        if([text.text length]==0){
        if([string isEqualToString:@" "]){
            return NO;
        }
        }
        return YES;
    }

通过放置此代码,用户不会输入空格作为第一个字母,但它接受字符串中间的空格。

答案 2 :(得分:1)

我会给你第一部分的提示。

NSString *tempname1 = [self.textField.text stringByReplacingOccurrencesOfString:@" " withString:@""];

BOOL thereAreJustSpaces = [tempname1 isEqualToString:@""];

答案 3 :(得分:1)

-(void)removeSpacesFromTextFields:(id) sender {
    NSString *trim = [self.FNTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    if ([trim length] == 0) {
      self.FNTextField.text = @"";
    }
}

答案 4 :(得分:0)

试试这个,如果你想阻止文本字段中的空格。

- (void)viewDidLoad
{
 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(checkSpace:) name:UITextFieldTextDidChangeNotification  object:textfield];

}
 -(void)checkSpace:(NSNotification *)notification
{

  str = [textfield.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] ;
 textfield.text=str;
}