困った問題があります。 Mac OS X 10.7のココアアプリで作業する。サブビューとして追加されたNSViewが表示されない
私のアプリのメインウィンドウには分割ビューが含まれています。特定の用途では、スプリットビューのサブビューの1つに、いくつかのラベル(nstextfield)と分割ビュー(nibをロードし、そのコントローラからビューを取得するビューコントローラをインスタンス化する)を持つカスタムビューがロードされます。カスタムビューのフレームは分割ビューの分割範囲に分割されており、すべて正常に動作します。 問題は、2番目の分割ビューのサブビューの1つが、テーブルビューとボタンを含むカスタムビューで読み込まれる必要があります(この場合は表示されません)。すべてが同じ方法で行われますが、最後のカスタムビューは表示されません。何か案が?
おかげ
これは私がビューを追加するためのビューを取得するには、コントローラをインスタンス化し、分割ビューのサブビューにサブビューとして追加するために使用するコードがある
(編集)
- (void)loadSubview {
self.subviewToAddController = [[viewController alloc] initWithNibName:nil bundle:nil];
//nib name is coded in the controller class definition
[[self.subviewToAddController view] setFrame:[self.splitViewContainerSubView bounds]];
//container subView is an outlet
[self.splitViewContainerSubView addSubview:[self.subviewToAddController view]];
}
しかし、このコードに問題はないと思います。コンテナのサブビューに独自のサブビューを依頼すると、新しいサブビューがリストにあることがわかります。それは単に表示されません。私が分割ビュー(ちょうど作られたテスト)のサブビュー、または最も外側の分割ビューのサブビューのサブビューとしてそれを追加すると、正しく表示されます(混乱した説明のために申し訳ありません、私はダイアグラムが必要ですが、
私は疑問を詳しく述べるために(私は以前に言及しなかったので)座標の問題ではないので、ビューが正しく読み込まれ、追加されましたサブビューとして表示されますが、何かによって隠されているか可視領域から見えているために表示されませんか?
(更新)
申し訳ありませんが、それはアップデートを投稿するので時間がかかりました。 さらにテストしたところ、問題はautolayoutに関連していることがわかりました。正確な問題が何であるか、それをどのように解決するかは考えられません。私は困っていたペン先のためにそれをオフにしてしまい、インタフェースオブジェクトの位置とサイズ/サイズを設定する古い方法を使用しました。最善の方法ではなく、今のところ私は続けることができます。
質問を編集して、カスタムビューを目的の親ビューのサブビューとして追加するコードを含めてください。 –
Question編集済み –
親ビューに対していくつかの境界操作を行っていない限り、その境界は、親ビュー全体を占める子ビューの「フレーム」の正しい矩形でなければなりません。 'NSLog'を使ってチェックすることができます。 –