簡體   English   中英

在 UITextField 中的字符后添加空格

[英]Add whitespace after character in the UITextField

當我從鍵盤輸入每個字符時,我試圖添加空格,但問題是我無法刪除、復制或編輯文本。

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

    NSUInteger length = [textField.text length] + [string length] - range.length;

    if ([textField tag] == textTag && newLength <= 10) {
        textField.text = [textField.text stringByAppendingString:@" "];
        length ++;
        NSLog(@"%d", length);
    } else {
        NSLog(@"%d", length);
        return NO;
    }

    return YES;

}

您也可以這樣做。

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

   NSUInteger length = [textField.text length] + [string length] - range.length;

   if (length < 10) {

        NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

        NSString *lastString = [NSString stringWithFormat:@"%c",[newString characterAtIndex:newString.length-1]];

       if(![lastString isEqualToString:@" "] && ![string isEqualToString:@""])
           newString = [newString stringByAppendingString:@" "];
       else {

           NSRange tempR = NSMakeRange(range.location-1, 2);

           newString = [textField.text stringByReplacingCharactersInRange:tempR withString:@""];
       }

       textField.text = newString;
   }

    return NO;
}

嘗試這個:

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSUInteger length = [textField.text length] + [string length] - range.length;

    if (length < 10) {
        textField.text = [textField.text stringByAppendingString:@" "];
        length++;

        NSLog(@"%d", length);
    }
    else if (length >= 10 && string.length > 0)
    {
        NSLog(@"%d", length);
        return NO;
    }  

    if (string.length == 0) {
        textField.text = [textField.text substringWithRange:NSMakeRange(0, length - 1)];
        return YES;
    }

    return YES; 
}

Swift 5:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
   let length = (textField.text?.count ?? 0) + string.count - range.length

   if length < 10 {
      var newString = NSString(string: textField.text ?? "").replacingCharacters(in: range, with: string)
      let lastString = newString[newString.index(newString.startIndex, offsetBy: newString.count - 1)]

      if !(lastString == " ") && !(string.isEmpty) {
         newString = newString.appending(" ")
      } else {
         let tempRange = NSRange(location: range.location - 1, length: 2)
         newString = NSString(string: textField.text ?? "").replacingCharacters(in: tempRange, with: "")
      }

      textField.text = newString
   }

   return false
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM