2011-02-10 14 views
0


xibファイルからビュー(別のxib)を動的にサブビューとしてロードしました。
デフォルトでは、このサブビューはウィンドウの最初の象限にロードされていることがわかります。つまり、サブビューはウィンドウの最後の一番下にあります。私の窓も同じです。
問題は、サブビューをウィンドウのどこかに配置する方法です。言い換えれば、私は私のウィンドウの上部にサブビューを配置したい場合、どのように私はそれを達成するだろうか?別のビューにサブビューを配置する

また、NSWindowオブジェクトのNSRectとフレームの説明を得ることができたら本当に感謝します。
APIにメソッドがある場合は、それらに私を指示してください..事前に感謝...

UPDATE:

@interface ViewAvailableItemsWindowController : NSObject { 
    IBOutlet NSWindow * viewAvailableItemsWindow; //Window in question 
    IBOutlet NSView * viewAvailableItemsView; //View in question 

    ItemSearchViewController * instanceItemSearchView; //ViewController object 
} 

@end 


@implementation ViewAvailableItemsWindowController 

-(void)awakeFromNib{ 
    [viewAvailableItemsWindow makeKeyAndOrderFront:nil]; 
    instanceItemSearchView = [[ItemSearchViewController alloc]initWithNibName:@"ItemSearchView" bundle:nil] ; //Initiating the viewController with the nib for the view. 
    [viewAvailableItemsView addSubview:[instanceItemSearchView view]]; //Adding the subview to the window.. 

} 

-(void)dealloc{ 
    [instanceItemSearchView release]; 
    [super dealloc]; 
} 

@end 

これは私がウィンドウの左下隅を意味ウィンドウ - の第一象限のビューをロードします。ビューをウィンドウの中央の中央に配置します。

+0

何を試しましたか?どんなドキュメンテーションを読んでいますか?精巧なものであり、私たちは、あなたを指し示すのではなく、始めるのに適した場所を用意しています。 –

+0

ビューをウィンドウにロードするのに役立つviewControllerクラスを使用しました。私は私の質問でコードを更新しました...見てください... –

答えて

2

NSRectは長方形です。それは起源と大きさで構成されています。原点は点xとyです。サイズは幅と高さです。これからはrectを{{x、y}、{width、height}}と入力します。

各ビューにはフレームがあります。ビューのフレームは、そのスーパービュー内のビューの位置です。各ビューにも境界があります。ビューの境界は、ビューの内部座標系を定義します。デフォルトでは、0、0が左下隅にあり、XとYが増加すると右と上に移動します。

例:1つのビューに{{0、0}、{100,100}}の境界があり、そのビューの内側に別のビューを置き、そのフレームを{{25,50}、{10 、10}}の場合、サブビューのサイズは10x10で、左端の右に25ポイント、下から50ポイント上になります。

境界のサイズはほとんどの場合、フレームのサイズと同じです。すべてのサブビューとカスタム図面を拡大または移動する場合を除き、通常はビューの境界を設定または調整しません。これは高度な処理です。

ですから、このようなものがあった場合:

+-------------------+ 
|  +----------+ | 
|  | +---+ | | 
| A | B | C | | | 
|  | +---+ | | 
|  +----------+ | 
|     | 
|     | 
+-------------------+ 

各ボックスは、NSViewのを表し、各ビューは、次のサブビューです。だからAはBを含み、Cを含んでいます。それぞれのビューの境界とフレームは次のようなものです:

 Bounds    Frame 
     {{X, Y}, {W, H}} {{ X, Y}, {W, H}} 
A  {{0, 0}, {30, 30}} {{ 0, 0}, {30, 30}} 
B  {{0, 0}, {20, 15}} {{20, 20}, {20, 15}} 
C  {{0, 0}, {10, 10}} {{10, 10}, {10, 10}} 
+0

cのx、yは{20,20}、b(10、10)は –

+1

となるはずはありません。 BはAを基準にしており、CはBを基準にしています。起源は左下にあるので、BはAの左下から、CはBの左下からです。 –

関連する問題