Swift-原生MENU控制器

前言

  • 默认UIView继承了UIResponse类,通过该类创建UIMenuController可快捷的实现复制、删除、粘贴等功能;
  • 可实现的按钮类型包括 剪切、复制、粘贴、选择等,具体可以查看UIKit内的UIResponder.h文件;
重写属性与方法
class CustomView: UIView {
    // 使视图具有响应性
    override var canBecomeFirstResponder: Bool { true }

    override func copy(_ sender: Any?) {
        // 复制
    }

    override func paste(_ sender: Any?) {
        // 粘贴
    }

    override func select(_ sender: Any?) {
        // 选择
    }

    override func delete(_ sender: Any?) {
        // 删除
    }
}
添加手势事件
extension CustomView {
    func setupMenu() {
        let gesture = UILongPressGestureRecognizer(target: self, action: #selector(longPressAction(_:)))
        addGestureRecognizer(gesture)
    }

    @objc func longPressAction(_ sender: UILongPressGestureRecognizer) {
        if sender.state == .began {
            becomeFirstResponder()
            let menu = UIMenuController.shared
            menu.setTargetRect(视图.bounds, in: 视图)
            menu.setMenuVisible(true, animated: true)
        }
    }
}

至此就完成了MENU的设置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容