Ios 为什么UITextField在输入字符串的末尾添加空格?

Ios 为什么UITextField在输入字符串的末尾添加空格?,ios,swift,iphone,uitextfield,swift5,Ios,Swift,Iphone,Uitextfield,Swift5,在花费时间进行调试后,我发现UITextField在从剪贴板粘贴的字符串中添加了空格 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { var input: String let newString = string.trimmingCharacters(in

在花费时间进行调试后,我发现UITextField在从剪贴板粘贴的字符串中添加了空格

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        var input: String
        let newString = string.trimmingCharacters(in: .whitespacesAndNewlines)   // newString = "123"
        if let oldString = textField.text {                                      // oldString = "456"
            input = oldString
            input.insert(contentsOf: newString, at: input.index(input.startIndex, offsetBy: range.location))  // rang.location = 2, input = "4 123 56" but it supposed to be "412356"
        } else {
            input = newString
        }
        return true  
}
我有两个问题:
1-为什么只有在第二次或更多次粘贴时才会发生这种情况?

2-如何避免将这些空白添加到粘贴的字符串中

您可能正在观察
smartInsertDeleteType
属性的效果。您可以这样更改:

class ViewController: UIViewController {

    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        textField.smartInsertDeleteType = .no
    }
}

非常感谢。这就解决了我的问题和对这种行为的质疑。