【问题标题】:Preventing pasting into a textField in swift 5 [duplicate]防止在swift 5中粘贴到文本字段中[重复]
【发布时间】:2020-08-17 18:25:31
【问题描述】:

我的代码中有这个扩展来限制我拥有的文本字段的长度。

我试图让事情禁止粘贴——因为我使用编号来输入 3 位数的值。

我似乎无法将这些代码 sn-ps 放到正确的位置。

如果我把它放在代码块底部的扩展 Viewcontroller:UITextFieldDelegate 中,这会起作用吗?

我处于学习过程的早期阶段,有时在哪里丢东西不太顺利。提前致谢。

【问题讨论】:

标签: swift extension-methods paste


【解决方案1】:

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

 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))
    }
}

【讨论】:

  • 谢谢大家。现在开始工作了!
猜你喜欢
  • 2022-01-23
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
  • 2012-07-08
  • 1970-01-01
相关资源
最近更新 更多