[英]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.