当前位置: 首页 > 编程笔记 >

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

林浩漫
2023-03-14
本文向大家介绍iOS开发之TextField禁用粘贴、选择和全选功能,包括了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)
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍html5+CSS 实现禁止IOS长按复制粘贴功能,包括了html5+CSS 实现禁止IOS长按复制粘贴功能的使用技巧和注意事项,需要的朋友参考一下 因为在移动端APP需要实现长按执行别的事件,但是在iOS系统有默认的长按选择复制粘贴,禁止此功能在网上找了很多资料,最终整理出目前最好的解决方法。 项目是APP,已经经过多款手机适配此时,因此可以放心使用。 以上所述是小编给大家介绍的h

  • 如果选择选项值是从循环中提取的,那么如何禁用该选项值?是否有其他方法解决此问题? 示例输出在循环和我想禁用选项值6和7。谢谢帮忙。

  • 我有两个表和 names表有以下列表: -男性姓名从nameID 1到nameID 10 -女性姓名从nameID 11到nameID 21 -两者都从nameID 23到nameID 31 性别表有三个属性: -女性 -男性 -两者 我正在使用引导选择选项,我想显示从nameID11到nameid21的名称,如果用户从gender选择选项中选择女性,等等,这是可能的吗?我看到其他帖子,我注意到他

  • 本文向大家介绍jquery实现全选、全不选以及单选功能,包括了jquery实现全选、全不选以及单选功能的使用技巧和注意事项,需要的朋友参考一下 效果图: 代码如下: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 问题内容: 我正在Swift的一个Cocoa项目中工作,遇到了以下问题: Cocoa Framework中的几个类(例如或)实现了一个名为的函数,该函数打开一个窗口以打印某些内容(实际上不知道什么),因此当我在从这些类之一继承的类中工作时,将某些东西记录到控制台以进行调试,我使用了该功能。但是,尽管我指的是全局打印功能,但编译器仍认为我正在指代。 我通过声明如下的全局函数找到了一种解决方法: 而不

  • 问题内容: 我有一个包含3个复选框的表单:“ 全 选 ”,“ 选项1 ”和“ 选项2 ”。 在初始页面加载中,我 只 希望检查 选项1 。然后,如果 选中了“全选” 复选框,则它应自动选中 选项1 和 选项2, 以便全部选中。 问题是在初始页面加载时对ng-checked =“ selectAll”进行评估,这将覆盖我最初仅检查选项1的尝试(最初selectAll = false),因此未选择任何