I searched the all posts and around on the internet but couldn't find anything for mac app that could solve my problem. The contextMenu is not displayed when I start the app and right click.
// MARK: - var
private var selectedPatients: [ArrayPatient] = []
// MARK: - NSMenu
var contextMenu: NSMenu {
let rightClickMenu = NSMenu()
let deleteItem = NSMenuItem()
deleteItem.title = LocalizationUtility.localizedString("title.delete")
deleteItem.target = self
deleteItem.action = #selector(didSelectContextItem(_ :))
deleteItem.tag = 0
let editPatientItem = NSMenuItem()
editPatientItem.title = LocalizationUtility.localizedString("contextMenu.editGroupInfo")
editPatientItem.target = self
editPatientItem.action = #selector(didSelectContextItem(_ :))
editPatientItem.tag = 1
if selectedPatients.count == 1 {
rightClickMenu.addItem(editPatientItem)
}
rightClickMenu.addItem(deleteItem)
return rightClickMenu
}
// MARK: - ContextMenuDelegate
func collectionView(_ collectionView: NSCollectionView, didRightClickItemAt indexPath: IndexPath, with event: NSEvent) {
if let patient = dataSource?[indexPath.item], !selectedPatients.contains(patient as! ArrayPatient) {
self.collectionView(collectionView, didSelectItemsAt: [indexPath])
}
NSMenu.popUpContextMenu(contextMenu, with: event, for: collectionView)
}
@objc func didSelectContextItem(_ sender: NSMenuItem) {
if sender.tag == 0 {
// Delete
if AlertUtility.showConfirmationAlert(withTitle: "alert.deleteGroup") {
deleteObject(selectedPatients)
}
} else if sender.tag == 1 {
// Edit info Group
openEditObjectController(selectedPatients.first)
}
}