如何在Swift IOS中禁用Uitextfield双击或长按



uitextfield的选择,selectall,cut,copy功能在默认情况下显示在文本字段上时长或双点击时。我不需要所有功能。请告诉我如何禁用长按或双击手势功能。

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

您必须子类UITextField并尝试使用此代码来禁用/hide carex and Input(copy/paste)

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)
    }

这是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
}

希望这对您有帮助。

最新更新