macOSのアプリでコンテクストメニューを実装するにはNSViewでmenu(for:)を使うらしいですが、これをTableView上で右クリックしたときだけにしたいです。
マウスのポインタの位置で判断するしかないでしょうか。
アドバイスを受けて以下のようにコードを追加しましたが、コンテクストメニューが出ません。
右クリックしても何の反応もなし。
実装方法が悪いのでしょうか。
Swift
1extension NSTableView { 2 override open func menu(for event: NSEvent) -> NSMenu? { 3 var menu = NSMenu(title: "Context Menu") 4 let myApp = NSApplication.shared.delegate as! AppDelegate 5 6 menu.addItem(withTitle: "", action: #selector(myApp.mainView!.addRow(_:)), keyEquivalent: "") 7 8 menu.addItem(withTitle: "", action: #selector(myApp.mainView!.insertNewRow), keyEquivalent: "") 9 10 menu.addItem(withTitle: "", action: #selector(myApp.mainView!.copyRow), keyEquivalent: "") 11 menu.addItem(withTitle: "", action: #selector(myApp.mainView!.pasteRow), keyEquivalent: "") 12 menu.addItem(withTitle: "", action: #selector(myApp.mainView!.insertCopiedRow), keyEquivalent: "") 13 14 return menu 15 16 } 17} 18
回答1件
あなたの回答
tips
プレビュー