TextField禁用粘贴、选择和全选功能

本文介绍了一种自定义UITextField的方法,通过重写canPerformAction方法来禁用文本字段的粘贴、选择和全选等功能,适用于需要限制用户输入特定场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,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)
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值