繁体   English   中英

如何快速删除UIMenuController项目?

[英]How to remove UIMenuController item in swift?

我想删除UIMenuController项目。

此文本字段不是UITextField。

该文本字段是UIWebView的文本字段。 不是本地人。

我尝试了这个。

override func viewDidLoad() {
    super.viewDidLoad()
    ...
    UIMenuController.shared.isMenuVisible = false
}

override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        return false
    }

但是结果总是一样的。 如何删除UIMenuItem?

我只需要“复制”按钮。 我怎样才能做到这一点??

在此处输入图片说明

您可以使用操作创建自定义菜单项,并通过以下代码将其分配给UIMenuViewController:

let menuCustom1 = UIMenuItem(title: "Custom 1", action: #selector(<MethodName>))
let menuCustom2 = UIMenuItem(title: "Custom 2", action: #selector(<MethodName>))
let menuCustom3 = UIMenuItem(title: "Custom 3", action: #selector(<MethodName>))

UIMenuController.shared.isMenuVisible = true
UIMenuController.shared.menuItems = [menuCustom1, menuCustom2, menuCustom3]
UIMenuController.shared.update()

输出:

UIMenuController自定义项

我希望这能帮到您。

要在swift4中删除UIMenuController项目:

class DNGWebView: WKWebView {
    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
            return false
    }
}

正如Peter Stuart所说 :子类化呈现菜单的视图(例如UITextView)

然后override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool

对于不想显示的菜单项,返回false。

为了直观地说明它:

import WebKit

class DNGWebView: WKWebView {
    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        if action == #selector(copy(_:)){
            return true
        }
        else{
            return false
        }
    }
}

11

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM