Swift-原生MENU控制器

前言

  • 默認UIView繼承了UIResponse類,通過該類創(chuàng)建UIMenuController可快捷的實現(xiàn)復(fù)制、刪除、粘貼等功能;
  • 可實現(xiàn)的按鈕類型包括 剪切、復(fù)制、粘貼、選擇等,具體可以查看UIKit內(nèi)的UIResponder.h文件;
重寫屬性與方法
class CustomView: UIView {
    // 使視圖具有響應(yīng)性
    override var canBecomeFirstResponder: Bool { true }

    override func copy(_ sender: Any?) {
        // 復(fù)制
    }

    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的設(shè)置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容