右键单击用于UIKitForMac的UIButton催化剂

问题描述

是否可以在UIKitForMac中轻松启用对Catalyst应用程序的右键单击?

当前,以下代码在单击鼠标左键时可以正常工作,但是在单击鼠标右键时什么也不需要:

WM_CHAR

//被称为左击,但不被单击

button.addTarget(self,action: #selector(doSomething),for: .touchUpInside)

解决方法

https://developer.apple.com/design/human-interface-guidelines/ios/controls/context-menus/

通过右键单击Mac Catalyst,可以使用此菜单

1。添加迭代

let interaction = UIContextMenuInteraction(delegate: self)
 yourButton.addInteraction(interaction)

2。添加扩展UIContextMenuIteractionDelegate

extension AccountViewVC: UIContextMenuInteractionDelegate {

 public func contextMenuInteraction(_ interaction: UIContextMenuInteraction,configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? {
      
      return UIContextMenuConfiguration(identifier: nil,previewProvider: nil,actionProvider: { suggestedActions in
           let delete = UIAction(title: "Delete",image: UIImage(systemName: "arrow")) { action in
                
           }
           let children = [delete]
           return UIMenu(title: "Main Menu",children: children)
      })
 }}