3

サイズの異なる2つのNSViewを持つViewControllerがあります。カスタムViewControllerのビューをサブビューとしてこれらのNSViewの両方に追加し、動的に塗りつぶすサイズ(2つの親ビュー)にしたいです。これはメインレイアウトの実装ファイルで問題なく実行できますが、コードがたくさんあります。代わりに、カスタムViewControllerにすべての作業を実行させたいと思います。そのためには、カスタムビューを追加するビューの高さと幅を知る必要があります。parentViewControllerプロパティがありますが、何もしていません。ビューが追加されているビューを参照する方法はありますか?

私のカスタムViewControllerviewDidLoadメソッドで、

[self.view setFrame:CGRectMake(0, 0, 
    self.parentViewController.view.frame.size.width, 
    self.parentViewController.view.frame.size.height)];

ただし、ここでは高さと幅の両方がゼロです。

私は何時間もドキュメントを掘り下げてきましたが、まだ混乱しています。どんな助けでも大歓迎です。

4

1 に答える 1

4

最初に、parentViewControllerプロパティを設定する必要があります。設定されていない場合はnilになります。正しく設定されているかどうかは指定していません。ただし、ビューのスーパービューが正しく設定されていると仮定すると、これを行うためのより簡単な方法があります。これを試して:

[self.view setFrame:self.superview.frame];

または、スーパービューのフレームで何かを変更する必要がある場合は、そのフレームから長方形を作成します。

于 2011-12-05T06:22:56.303 に答える