Swift-原生MENU控制器

2023-03-01  本文已影响0人  查理布朗Bio

前言

重写属性与方法
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的设置

上一篇 下一篇

猜你喜欢

热点阅读