ユーザー イベントに応答して、次のことを行います。
- ウィンドウに新しい NSView を追加してから、
- そのビューのすぐ下に配置された NSPanel を表示します
私はこれを半分ずつやりました。新しいサブビューを追加できます。コンテナ ビュー-updateConstraints
はそれを識別し、正しいレイアウト制約を追加します。これにより、次にレイアウトが実行されたときにウィンドウに正しく配置されます。また、パネルを画面に表示する NSWindowController サブクラスがあります。
残念ながら、注文に問題があります。私のパネルのコントローラーは、新しい NSView のframe
プロパティを見て配置場所を決定するだけですが、このメイン イベント ループの繰り返しの間、-layout
メソッドはまだ呼び出されていないため、まだ (0,0) に配置されています。
(これら 2 つの機能を分離し、「ビューの追加」と「パネルの作成」に 2 つの別個のユーザー イベントが必要な場合、パネルはビューの下に正しく配置されます。)
レイアウトの制約があるかのように、NSPanel を NSView にアタッチする方法はありますか? -layout
または、「これを行う(ウィンドウコントローラーのもの)が、次の呼び出しの後でのみ」と言う方法はありますか?