実装方法
新規にプロジェクトを作った状態でMain.Storyboardを開くと
以下のようなオブジェクトが既に存在しているので、
必要に応じてメニューの追加と削除をすればOKです。
初期動作を確認する
新規にプロジェクトを作った状態でビルド後、
アプリを選択状態にすることで以下のように選択しているアプリのメニューが表示されます。
初期状態ではメニューを押しても中身を実装していないのでほとんどが動かないのですが、
一部最初から自動的に実装されているところもあるようです。
例えば「About アプリ名」は最初から実装されており、以下のように表示されます。
メニューを追加する
以下の場所に「Menu Item」をドラッグ&ドロップすれば、
メニュー項目が追加されます。
ビルドして以下のように追加されていれば成功です。
メニュー選択時の動作を追加する
まず初めにメニューのクラスを作成します。
「File」ー>「New」ー>「File」でテンプレートを選択する画面を表示します。
macOSタブのSource「Cocoa Class」を選択後、「Next」ボタンを押して、
任意のClass名を入力後、Subclassは「NSObject」を選択して「Next」ボタンを押します。
あとはファイルの置き場所を指定して「Create」ボタンを押して作成すれば準備完了です。
次に作成したクラスをStoryboardと紐付けます。
以下の青ボタン部分を選択して任意のクラス名に変更することでクラスとStorybordを紐付けてイベントを取得できるようになります。
あとはボタンと同じ方法でメニューを押した時の動作を設定します。
確認のためボタンを押した時にログを出力するように追加します。
@IBAction func itemAction(_ sender: NSMenuItem) { print("追加したメニューを押しました。") } |
結果
こんな感じでメニューを押した時にログが出れば成功です。
感想
iOSアプリには存在しないメニューバーですが、
以外と簡単に実装が出来ました。
ググるとコードを書いて実装している例もあったんですが、
iOSアプリ開発と同様にパフォーマンスに影響がない場合は、
基本的にStoryboard上で実装した方がシンプルに作れますね!
この記事を書いた人
![柳 秀明](http://techblog.recochoku.jp/wp-content/themes/luxeritas/images/trans.png)
- iOSエンジニア
最近書いた記事
2019.08.05レコチョクのロゴがBitriseの公式サイトに掲載されるようになりました。
2017.10.31OS Xのアプリ開発 入門編
2017.10.26レコチョク勉強会「iOS11 新機能「Screen Recording」機能のポイント/レコチョクのアプリ開発環境」を開催しました!
2017.09.21OS Xのメニューバーを実装してみました。