防止粘贴到 swift 中的文本字段 5
Preventing pasting into a textField in swift 5
我的代码中有这个扩展来限制我得到的文本字段的长度。
我正在尝试禁止粘贴——因为我使用编号输入 3 位数的值。
我似乎无法将这些代码片段放在正确的位置。
如果我把它放在代码块底部的扩展 Viewcontroller:UITextFieldDelegate 中,它会起作用吗?
我处于学习过程的早期阶段,有时放东西的地方不太顺利。提前致谢。
此代码将使文本字段仅接受数字。
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))
}
}
我的代码中有这个扩展来限制我得到的文本字段的长度。
我正在尝试禁止粘贴——因为我使用编号输入 3 位数的值。
我似乎无法将这些代码片段放在正确的位置。
如果我把它放在代码块底部的扩展 Viewcontroller:UITextFieldDelegate 中,它会起作用吗?
我处于学习过程的早期阶段,有时放东西的地方不太顺利。提前致谢。
此代码将使文本字段仅接受数字。
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))
}
}