如何在 Swift iOS 中禁用 UITextField 双击或长按? [复制]

Posted

技术标签:

【中文标题】如何在 Swift iOS 中禁用 UITextField 双击或长按? [复制]【英文标题】:How to disable UITextField double tap or long press in Swift iOS? [duplicate] 【发布时间】:2017-03-15 06:12:19 【问题描述】:

UITextField 的 Select、SelectAll、Cut、Copy 功能默认显示,当我长按或双击 TextField 时。我不需要这所有的功能。请告诉我如何禁用长按或双击手势功能。

【问题讨论】:

请参考:***.com/questions/6701019/… 【参考方案1】:

以下代码将禁用这些选项:

您必须继承 UITextField 并尝试使用此代码来禁用/隐藏插入符号和输入(复制/粘贴)

override func caretRectForPosition(position: UITextPosition!) -> CGRect 
            return CGRect.zeroRect
        

    override func selectionRectsForRange(range: UITextRange) -> [AnyObject] 
        return []
    

    override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool 
        // Disable copy, select all, paste
        if action == Selector("copy:") || action == Selector("selectAll:") || action == Selector("paste:") 
            return false
        
        // Default
        return super.canPerformAction(action, withSender: sender)
    

【讨论】:

【参考方案2】:

这是 swift 3.0 的答案,

请试试这个,

override func canPerformAction(_ action: Selector, withSender sender: Any) -> Bool 
    UIMenuController.shared.menuVisible = false
    //do not display the menu
    self.resignFirstResponder()
    //do not allow the user to selected anything
    return false

希望这会对你有所帮助。

【讨论】:

以上是关于如何在 Swift iOS 中禁用 UITextField 双击或长按? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

禁用 UILabel、UIText 等的自动调整字体。在 iOS/Swift 中?

启用/禁用表格视图单元格 - iOS - Swift

在 iOS 设置中更改通知时,Amazon SNS 如何禁用/重新启用设备?

如何在 iOS(Swift 3)上断开 Firebase 通知?

无法在 iOS 15 swift 上禁用键盘上的自动填充。 Xcode 13

iOS Swift 4 状态栏 - 禁用半透明