我想防止用户不输入任何数据以及只输入空格。所以基本上必须至少有一个没有空格的字符。然后我还想删除单词开头的任何空格,所以第一个字母是一个不是空格的字符。
编辑
用户必须输入一些内容,如果用户在它之前输入几个空格,那么我想修剪这些空格。我还想防止用户只输入空格。
例子
如果用户输入像“James Dean”这样的名字和姓氏,我想拿走第一个空格,而不是 James 和 Dean 之间的第二个空格。
我想防止用户不输入任何数据以及只输入空格。所以基本上必须至少有一个没有空格的字符。然后我还想删除单词开头的任何空格,所以第一个字母是一个不是空格的字符。
编辑
用户必须输入一些内容,如果用户在它之前输入几个空格,那么我想修剪这些空格。我还想防止用户只输入空格。
例子
如果用户输入像“James Dean”这样的名字和姓氏,我想拿走第一个空格,而不是 James 和 Dean 之间的第二个空格。
将您设置为您的UIViewController
目的地并实施此方法:UITextField
delegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// verify the text field you wanna validate
if (textField == _nameTextField) {
// do not allow the first character to be space | do not allow more than one space
if ([string isEqualToString:@" "]) {
if (!textField.text.length)
return NO;
if ([[textField.text stringByReplacingCharactersInRange:range withString:string] rangeOfString:@" "].length)
return NO;
}
// allow backspace
if ([textField.text stringByReplacingCharactersInRange:range withString:string].length < textField.text.length) {
return YES;
}
// in case you need to limit the max number of characters
if ([textField.text stringByReplacingCharactersInRange:range withString:string].length > 30) {
return NO;
}
// limit the input to only the stuff in this character set, so no emoji or cirylic or any other insane characters
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 "];
if ([string rangeOfCharacterFromSet:set].location == NSNotFound) {
return NO;
}
}
return YES;
}
试试这样可能对你有帮助,这是我的代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string{
if([text.text length]==0){
if([string isEqualToString:@" "]){
return NO;
}
}
return YES;
}
通过放置此代码,用户不会输入空格作为第一个字母,但它接受字符串中间的空格。
我会在第一部分给你一个提示。
NSString *tempname1 = [self.textField.text stringByReplacingOccurrencesOfString:@" " withString:@""];
BOOL thereAreJustSpaces = [tempname1 isEqualToString:@""];
-(void)removeSpacesFromTextFields:(id) sender {
NSString *trim = [self.FNTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
if ([trim length] == 0) {
self.FNTextField.text = @"";
}
}
Try this, If you want to prevent space in your text field.
- (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;
}