macOSアプリでメニューを選択可能または、選択不可能にする

macOSアプリのメニューをグレーアウトして選択をできないようにする方法についてまとめた。

メニューの選択可能・選択不可能

class AppDelegate: NSObject, NSApplicationDelegate {

    
    //メニューの選択可能・選択不可能
    @objc func validateUserInterfaceItem(_ item: NSValidatedUserInterfaceItem) -> Bool {
        
        if item.action == #selector(AppDelegate.MenuTest(_:)) {
            //選択不可能(グレーアウト、選択をできないようにする)
            return false
        }

        return true

    }

    //メニューの処理
    @IBAction func MenuTest(_ sender: Any) {
            //処理
    }

}

参考

https://stackoverflow.com/questions/33594837/menubar-with-storyboard-validatemenuitem-not-get-called