iOS:当用户点击时将字符添加到字符串

标签 ios swift uitextfield

在我的 Swift 4 应用程序中,我希望在 textField 中添加一个特殊字符,同时用户点击文本字段中的第二个字符。

这就是我所做的:

 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if textField == self.specialTextField {
            if textField.text?.count == 2 {
                self.specialTextField.text! += "|"
            }
        }
        return true
    }

问题是“|”当我写入第二个字符时,不是直接添加,而是与第三个字符同时添加。

例如:我会写“abcd”。

当我点击“ab”时,什么也没发生。当我点击“c”时,我得到“ab|c”。

我该如何继续?

最佳答案

您可以将目标添加到 UITextFieldUIControlEvent.editingChanged 事件来完成您想要的操作:

specialTextField.addTarget(self, action: #selector(editingChanged), for: .editingChanged)

并实现editingChanged选择器方法:

@objc func editingChanged(_ textField: UITextField) {
    // check the contents of your textField and insert the special characters as needed
    print(textField.text!)
}

关于iOS:当用户点击时将字符添加到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50704805/

相关文章:

iOS 7 - TableView 无法正确显示值

ios - 加速度计数据不正确,延迟了几秒钟

swift - intrinsicContentSize() - 方法不会覆盖其父类(super class)中的任何方法

ios - 如何在不显示 UIKeyboard 的情况下选择 UITextField

ios - 如何将TextField的内容保存到plist

ios - 如何使用Cordova的闪屏API

android - 跟踪位置时启用 Wi-Fi 会消耗更多还是更少的电池电量?

javascript - iOS 浏览器上的 HTMLScriptElement 属性为空

ios - 贴纸包扩展加载到 iPhone 7 的模拟器上,而不是 7+ 或 iPad pro?

ios - 带有自定义文本字段的自动布局