6

我想从单词的开头删除空格。即我的第一个字符不应该是空格,并且两个单词之间只有一个空格。我正在尝试很多东西,但无法从开始删除空格。

我的代码是:

控制器.h

int whitespaceCount;

控制器.m

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
    if ([string rangeOfCharacterFromSet:whitespace].location != NSNotFound)
    {
        whitespaceCount++;
        if (whitespaceCount > 1)
        {
            return NO;
        }
    }
    else
    {
        whitespaceCount = 0;
        return YES;
    }
}

从上面的代码中,两个单词之间的一个空格是完美的。请建议我如何删除起始空间。提前致谢。

4

5 回答 5

21

您可以使用方法:-

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if (range.location == 0 && [string isEqualToString:@" "]) {
        return NO;
    }
    return YES;
} 

或者对于最新的 Swift,您可以使用以下内容:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if range.location == 0 && (string == " ") {
        return false
    }
    return true
}

使用它你不能在开始时输入 whitescpace。

你也可以这样做:-

 NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];

如果要从字符串中删除它,则需要进行以下操作

NEW STRING> = [<STRING_CONTAINS WHITESPACE> stringByTrimmingCharactersInSet:whitespace];
 NSLog("String without white space = %@",NEW STRING);

或者,如果您想从文本字段中完全删除空格,请使用以下内容:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if (string == " ") {
        return false
    }
    return true
}

为了使这种方法有效,请务必标记您的textfield.delegate = self

于 2013-04-22T08:25:16.413 回答
7

当您要使用它时,修剪文本字段内的文本

myTextfiled.text = [myTextfiled.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];

这将从开头和结尾修剪空白

于 2013-04-22T09:08:15.763 回答
0

下面的方法完美地删除了文本前后的空格: string = [string stringByTrimmingCharactersInSet:whitespace];

于 2013-04-22T08:24:03.670 回答
0

使用此方法删除空格:

+(NSString *)trim:(NSString *) strInput{
    返回 [strInput stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
于 2013-04-22T08:47:42.047 回答
0

最好防止用户在 UITextField 中输入空格作为第一个字符。在这里,我们将阻止用户输入空格作为第一个字符。用户将被允许在字符串之间以及字符串末尾输入空格。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//Will prevent user from entering space as first character
let enteredCharString = "\(textField.text ?? "")\(string )"
if enteredCharString .trim().count == 0 {
  return false
}
}
于 2018-05-21T05:56:56.053 回答