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

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

【问题讨论】:

标签: ios swift


【解决方案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
    }
    

    希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      • 2016-08-03
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多