前言
- 默認
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è)置