【问题标题】:How to add custom menuItem in specified position of UIMenuController?如何在 UIMenuController 的指定位置添加自定义 menuItem?
【发布时间】:2018-10-19 01:42:12
【问题描述】:

UIMenuController 中有五个默认菜单项:剪切、复制、粘贴、查找、共享...我想在菜单“粘贴”和“查找”之间添加一个自定义菜单项“粘贴和搜索”。

【问题讨论】:

  • 你将用于 WebView

标签: ios swift uimenucontroller


【解决方案1】:

您可以通过禁用系统菜单并使用UIMenuController 创建您自己的菜单来做到这一点

开始子类你的视图说 UIWebViewUItextViewUIScrollView,..etc 并覆盖此方法 override func canPerformAction(_ action: Selector, withSender sender: Any?) 以禁用系统菜单项

这样 - UIWebView 示例

import UIKit

class CustomWebView: UIWebView {
   override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
          return false  // Disable Menu system
       }
 }

然后开始创建自己的菜单,并实现其功能复制粘贴,...

class  ViewController: UIViewController{

    @IBOutlet var webView: CustomWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.webView.loadHTMLString("<p>Hello, world!</p>", baseURL: nil)
        enableCustomMenu()
    }



    func enableCustomMenu() {
        let cut = UIMenuItem(title: "Cut", action: #selector(runCut))
        let copy = UIMenuItem(title: "Copy", action: #selector(runCopy))
        let paste = UIMenuItem(title: "Paste", action: #selector(runPaste))
        let pasteSearch = UIMenuItem(title: "Paste and Search", action: #selector(runPasteSearch))
        let look = UIMenuItem(title: "Look Up", action: #selector(runLook))

   //  ----> here Arrange as you can
        UIMenuController.shared.menuItems = [cut,copy,paste,pasteSearch,look]
    }

    func disableCustomMenu() {
        UIMenuController.shared.menuItems = nil
    }

    @objc func runCut() {
    }
    @objc func runCopy() {
        let text = webView.stringByEvaluatingJavaScript(from: "window.getSelection().toString();")
        print(text ?? "")
    }
    @objc func runPaste() {

    }
    @objc func runPasteSearch() {

    }
    @objc func runLook() {

    }
}

【讨论】:

  • 如何为外观添加自定义操作?
猜你喜欢
  • 2016-03-16
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
相关资源
最近更新 更多