ナビゲーションエディタ
アプリケーションのメニュー、つまりナビゲーションバーは、Navigationbar/ フォルダ内の
plist ファイルで定義されます(プロジェクト構成
の記事で登場しました)。ナビゲーションエディタを使うと、NeXTSTEP の plist を手書きする代わりに、
これらを視覚的なツリーとして編集できます。

階層化されたメニュー
TreasureBoat のナビゲーションは 階層化 されています。表示されるメニューは 3 つのソースから 組み立てられ、エディタは各項目がどこから来たのかが分かるように印を付けます。
[F]フレームワーク項目 — 依存しているフレームワークが提供する項目です。ここでは 読み取り専用 です。変更したい場合は、そのフレームワークのプロジェクトを直接開いてください。[S]共有項目 — 自分のアプリで定義され、すべての FaceID で利用できる項目です。- FaceID 項目 — 特定の FaceID に属する項目です。
FaceID
アプリケーション では、左パネルに FaceID の一覧が表示されます。それぞれが独立したメニュー 設定(ロールごと、セクションごと、テナントごと)です。FaceID を選ぶと、そのツリーを編集できます。 フレームワーク には FaceID はなく、フレームワークの項目を直接編集します。
項目を編集する
ツリーでノードを選択すると、プロパティパネルにその項目が何を指しているかが表示されます。よく使う ものは次のとおりです。
| プロパティ | 説明 |
|---|---|
| name | 項目の内部識別子 |
| displayName | メニューに表示されるラベル |
| pageName | 開く TBComponent のページ |
| action | ページの代わりに呼び出すアクションメソッド |
| href | 外部 URL |
| directActionClass / directActionName | 呼び出すダイレクトアクション |
| roleIdentifier | このロールを持つユーザーだけに項目が表示されます(アクセス制御) |
| conditions | 項目が表示される条件 |
| domains | ドメイン制限(マルチドメインアプリ向け) |
| target | リンクのターゲット(例:_blank) |
ツリーのツールバーで、項目の追加・削除・並べ替え、およびツリー全体の展開・折りたたみができます。

知っておくと便利なこと
- フレームワーク項目はアプリ内では読み取り専用です。 これは意図的な設計です。この階層構造により、フレームワークはデフォルトのメニューを提供でき、アプリはそれをフォークすることなく拡張できます。
[F]の項目を変更するには、そのフレームワークを編集してください。 - FaceID は、1 つのアプリで異なるメニューを表示するための仕組みです — ロールごと、セクションごと、テナントごとに、1 つのナビゲーション設定から切り替えます。
roleIdentifierは本物のアクセス制御です。ユーザーが該当ロールを持たない項目は、そのユーザーのメニューにそもそも表示されません。
関連記事
- プロジェクト構成 —
Navigationbar/が置かれている場所
#IntelliJ #日本語