如何正確加載使用Xib的NSView的子類的對象?以編程方式從nib的NSView的子類加載對象
我想它從一開始就被加載動態不那麼我做了一個MyView.Xib 從MyDocument.m我所做的:
MyView *myView = [[MyView alloc] initWithFrame:...];
[NSBundle loadNibNamed:@"MyView" owner:myView];
[someview addSubview:myView];
...
和背景是好的(它調用的drawRect:和它的繪製如預期) 但我放在xib上的所有按鈕都不會出現。 我檢查過了,他們被加載,但他們的超級視圖與myView
不是同一個對象。
這是爲什麼?我想我在Xib中錯過了一些東西,但我不知道究竟是什麼。 換句話說:我如何確保xib中的根視圖與文件所有者是同一個對象?
我希望有類似這樣的東西MAC:
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]; //in iOS this will load the xib
MyView* myView = [ nibViews objectAtIndex:1];
[someview addSubview:myView];
...
在此先感謝。
編輯
我想我已經意識到了問題的根源......(??)
在MyView的類我有在IB,這就是爲什麼他們加載正確連接各種IBOutlet中很好(我可以參考他們)。但是頂視圖沒有IBOutlet。所以當NSBundle加載筆尖時,頂視圖會被分配給其他一些對象。我認爲這會發生,如果我把我在IB的頂視圖從類:MyView
,並把myView
作爲所有者[NSBundle loadNibNamed:@"MyView" owner:myView];
,但似乎並非如此。 我在做什麼錯?
嘗試將它們移動到前面也許它將它畫在背面並且不能被看到因爲背景 – Radu 2011-05-02 08:53:44
我剛剛嘗試過......這是沒有發生;( – nacho4d 2011-05-02 09:00:43
在你的nib文件中,是否有頂級視圖,其類是「MyView」?nib文件中是否還有其他頂級對象?文件所有者的類是什麼? – 2011-05-02 09:18:52