簡體   English   中英

刪除 UITextField 中的最后一個字符

[英]Remove the last character in the UITextField

如果字符數超過 200,我試圖刪除 UITextField 中的最后一個字符。但它沒有效果:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        print(textField.text?.characters.count)
        if (textField.text?.characters.count > 200){
            self.textField.shake()
            self.textField.becomeFirstResponder()
            self.textField.text?.characters.dropLast()
        }
        return true
    }
    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool // return NO to not change text
{

    let textFieldString = textField.text! as NSString;

    var newString = textFieldString.stringByReplacingCharactersInRange(range, withString:string)

    if newString.characters.count > 200 {

// This will remove just last character, If u want to remove all the characters starting from 201st character pass 200 to substringToIndex method
        newString = newString.substringToIndex(newString.endIndex.advancedBy(-1))
        textField.text = newString

        return false
    }

   return true

}

您可以使用以下任一方法刪除 textField 文本字符的最后一個元素:

let myString = "Hello!"
let result1 = myString.substringToIndex(myString.endIndex.advancedBy(-1)) // Hello

var anotherString = "World!"
let result2 = String.init(anotherString.characters.dropLast()) // World

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
  var newString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
  print(newString.characters.count)
  if newString.characters.count > 200{
    self.textField.shake()
    self.textField.becomeFirstResponder()
    self.textField.text = String.init(newString.characters.dropLast())
    //or self.textField.text = newString.substringToIndex(newString.endIndex.advancedBy(-1))
  }
  return true
}

嘗試這個:

let string = self.textField.text?.characters.dropLast()
self.textField.text = String(string)

添加字符串擴展

extension String {
    func getSubString(from: Int, to: Int) -> String {
       let startIndex = self.index(self.startIndex, offsetBy: from)
       let endIndex = self.index(self.startIndex, offsetBy: to)
       return String(self[startIndex..<endIndex])
   }
}

用法

if let text = exerciseAnswer.text, text.count > 0 {
    exerciseAnswer.text = text.getSubString(from: 0, to: text.count - 1)
}

暫無
暫無

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

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