防止在Swift 5中粘贴到textField中

问题描述

我在代码中有了此扩展名,以限制我拥有的textField的长度。

我正在尝试禁止粘贴的操作-因为我使用数字输入3位数的值。

我似乎无法将这些代码片段放在正确的位置。

如果将其放在代码块底部的扩展名Viewcontroller:UITextFieldDelegate内,这项工作会成功吗?

我还处于学习过程的早期阶段,有时在哪里放东西并不顺利。预先感谢。

enter image description here

解决方法

此代码将使文本字段仅接受数字。

 func textField(_ textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool {
    let invalidCharacters = CharacterSet(charactersIn: "0123456789").inverted
    return string.rangeOfCharacter(from: invalidCharacters) == nil
}

并且此代码将防止粘贴。这仅启用剪切和复制功能。

class PastelessTextField: UITextField {
    override func canPerformAction(_ action: Selector,withSender sender: Any?) -> Bool {
        return super.canPerformAction(action,withSender: sender)
            && (action == #selector(UIResponderStandardEditActions.cut)
            || action == #selector(UIResponderStandardEditActions.copy))
    }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...