2
在我的程序,我有以下成立添加後:的NSView沒有顯示出來它被作爲一個子視圖(可可/ OSX)
我有3個NSViews我在界面生成器製成
所以PaintView是PlayerView的子視圖,ImageView是PlayerView頂部的視圖。
程序啓動時ImageView被隱藏。 PaintView是透明的,所以我看到它下面的PlayerView,但點擊發生在PaintView上。到現在爲止還挺好。
現在,我想要完成的是,當我按下按鈕時,PlayerView變爲隱藏狀態,ImageView變爲可見狀態,PaintView變爲其子視圖。所以我可以看到ImageView透明的PaintView,但仍然可以點擊PaintView。
什麼我的做法是,到目前爲止是這樣的:
// on the app start
[ImageView setHidden: YES];
// on the button press
[PaintView removeFromSuperview];
[PlayerView setHidden:YES];
[ImageView setHidden:NO];
[ImageView addSubview:PaintView positioned:NSWindowAbove relativeTo:nil];
不幸的是,這並沒有給我想要的結果。 ImageView位於最上面,所以我不能點擊PaintView。
有誰知道我做錯了什麼?任何形式的幫助真的很感激!
謝謝!
我知道這個事實,所以我添加(保留)到PaintView ...它不是零當我將它添加到ImageView(我在調試器中檢查它) – 2013-04-25 02:53:12
嗯,我會說調用removeFromSuperview是不需要的。它會自動從其他超級視圖中移除。另請注意,如果您啓用了ARC,則保留不會執行任何操作。我也會考慮改變addSubview:定位:relativeTo:只是addSubview:因爲它是不必要的代碼。 – Derek 2013-04-25 03:11:09
謝謝你,德里克。看起來像這些變化使它工作! – 2013-04-25 04:06:09