美文网首页
Swift-原生MENU控制器

Swift-原生MENU控制器

作者: 查理布朗Bio | 来源:发表于2023-03-01 15:15 被阅读0次

前言

  • 默认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的设置

相关文章

网友评论

      本文标题:Swift-原生MENU控制器

      本文链接:https://www.haomeiwen.com/subject/oibrldtx.html