1

私は、Mac OS X 用に開発している間、Objective-C と Cocoa を使用しています。つまり、iPhone/Cocoa Touch ではありません。(とは言っても、iPhoneでも同じ手順だったら面白いのですが)

シンプルなアプリの設定ウィンドウに取り組んでいます。ツールバー付きの NSWindow があります。ツールバーには 5 つの異なる項目があり、そのすべてで異なるオプション セットを表示する必要があります。

そこで、Interface Builder で NSToolbar とその項目を設定し、メニューの下にカスタム ビューを配置して、ウィンドウの残りの部分を占有しました。私の計画は、インターフェイスも NSToolbarItems オプションのそれぞれについて解決し、指定された NSToolbarItem がクリックされたときに対応するビューをカスタム ビューに描画することです。

各ビューの NSView サブクラス、Interface Builder で空の xib を作成するだけだと思います-xib をカスタム NSView に設定し、通常どおりコーディングします...しかし、いくつかの問題があります。

1 - どうすれば xib ファイルをカスタムビューに表示できますか? 私は周りを見回しましたが、ほとんどの記事にはこのような状況、または私が関連付けることができる状況はないようです.

2 - ウィンドウが表示されたら、カスタム ビューにデフォルト ビューを表示したい。繰り返しますが、NSWindow の初期化コードにそれを書いただけだと思いますが、大したことではありません。ただし、質問 1 に戻ります。NSView を Interface Builder で指定されたカスタムビューに描画するにはどうすればよいですか?

どんな助けにも本当に感謝しています!事前に乾杯。

4

1 に答える 1

1

そこで、Interface BuilderでNSToolbarとそのアイテムを設定し、メニューの下にカスタムビューを配置して、ウィンドウの残りの部分を占有しました。

ウィンドウ内にメニューを表示することはできません。メニューがあるポップアップボタンを使用できますが、メニューを直接表示することはできません。ここで「ツールバー」という意味ですか?

このためにカスタムビューを作成する必要はありません。タブビューを作成し、テーブルに設定します。ツールバー項目と同じ数のタブビュー項目を指定します。コントローラで、ツールバー項目ごとにアクションメソッドを記述し、各アクションメソッドでタブビューのアクティブなタブを切り替えます。

IBのさまざまなタブをアクティブにして、それらにIBのビューを表示できます。アクティブなタブはペン先に保存されるため、保存する前に必ず最初のタブに戻してください。これにより、最初のタブがアプリの実行時に最初にアクティブになるようになります。

xibファイルをカスタムビューに表示するにはどうすればよいですか?

その質問は意味がありません。

繰り返しになりますが、NSWindowの初期化コードにそれを記述しているだけだと思います。大したことではありません。

これを実行できるのは、ウィンドウの独自の初期化コードがある場合のみです。これは、NSWindowをサブクラス化した場合にのみ使用できます。それを行う理由はほとんどありません。ウィンドウ自体を異なって見えるようにする(AquaまたはHUDウィンドウを作成しない)場合を除いて、その初期化コードを別の場所、おそらく前述のコントローラー(nibのファイルの所有者)に移動する必要があります。

ただし、質問1に戻ります。NSViewをInterface Builderで指定されたカスタムビューに描画するにはどうすればよいですか?

Interface BuilderのカスタムビュープレーンなNSViewです(作成したNSViewのサブクラスに明示的に変更しない限り)。ただし、質問で説明したものには必要ありません。

于 2010-06-20T06:05:28.700 に答える