iOS开发之TextField禁用粘贴、选择和全选功能

众所周知,TextField默认情况下,双击会出现“Paste”等提示复制粘贴的快捷菜单,方便用户快速编辑文本,但很多情况下,我们并不希望用户能够粘贴文本【虽然这样不友好,但万一产品经理要这么实现呢?】,那么我们可以这样做:

方法

自定义TextField
重写canPerformAction方法

class CustomTextField: UITextField {
  /// 是否只是用于显示(禁用粘贴、选择和全选功能)
  var displayOnly = false
  /// 禁用粘贴
  var disablePaste = false
  /// 禁用选择
  var disableSelect = false
  /// 禁用全选
  var disableSelectAll = false

  override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
    if displayOnly {
      return false
    }
    if disablePaste && action == #selector(paste(_:)) {
      return false
    }
    if disableSelect && action == #selector(select(_:)) {
      return false
    }
    if disableSelectAll && action == #selector(selectAll(_:)) {
      return false
    }
    return super.canPerformAction(action, withSender: sender)
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。