0

NSWindowのサイズが変更されたときに、NSViewController内のすべてのサブビューのサイズを変更しようとしています。NSWindowビューには、サブビューとしてNSViewController.viewが含まれています。autoResizingをYESに設定し、autoResizingマスクを水平と垂直の両方に設定しました。

        [self.view setAutoresizesSubviews:YES];
    [background setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];

しかし、このテクニックは私にはうまくいきませんでした。すべてのコンポーネントは、IBを使用するのではなく、コードによって追加されることに注意してください。だから私の質問は:

  • 自動サイズ変更するには何を追加する必要がありますか?
  • OpenGLを使用して別のビューで描画します。新しいサイズに関して計算を行う必要がありますか?別のアプリでcocos2dを使用したときは、計算について心配する必要はありませんでした。それで、ここに似たようなものがありますか?
4

2 に答える 2

2

UIコンポーネントがレイアウトの変更に応答するようにするには、UIコンポーネントにレイアウト制約を設定する必要があります。IBには、あなたが望むものではないデフォルトがありますが、それらは微調整するためにあります。

自動サイズ変更は誤称です。事前設定されたレイアウト制約に従ってコンポーネントのサイズを変更する方が適切ですが、名前ははるかに長くなります。

フリーランチはないと思います。

于 2012-09-18T01:03:32.617 に答える
0

これを試して:

[self.window.contentView setAutoresizesSubviews:YES];

これの代わりに

[self.view setAutoresizesSubviews:YES];

それでもサブビューのサイズ変更または再配置が必要な場合は、デリゲート機能で行うことができます。

- (void)windowDidResize:(NSNotification *)notification{ 
}
于 2012-09-18T05:22:52.937 に答える