我無法調整NSWindow的大小以適應NSView。它必須是邏輯錯誤,因爲它起作用,但不是一個行爲。NSWindow不調整大小以適應NSView - 有時候?
我有一個NSWindow是空的,3個NSViews的組件和大小不同。
用下面的代碼我調整NSWindow以適合的NSView並顯示:
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
此代碼工作正常。
但是,在一個NSView中,我有一個返回按鈕,雖然這在NSWindow中顯示正確的NSView,但不會重新調整它的大小。作爲一個例子,初始窗口是一定的大小,我點擊切換到另一個視圖,它調整大小正確,我按下後退按鈕,NSView顯示,但窗口保持相同的大小?
任何人都可以向我解釋爲什麼當我切換回原始的NSView,它不調整NSWindow?
在此先感謝大家。這是我有的完整代碼:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
}
- (IBAction)switchSubtractionView:(id)sender {
[_window setContentSize:_subtractionView.frame.size];
[_window setContentView:_subtractionView];
}
- (IBAction)switchAdditionView:(id)sender {
[_window setContentSize:_additionView.frame.size];
[_window setContentView:_additionView];
}
// -----------------------------------------------------------------------
// THE FOLLOWING METHOD DISPLAYS THE NEW VIEW CORRECTLY BUT DOESN'T RESIZE
// -----------------------------------------------------------------------
- (IBAction)switchMainMenu:(id)sender {
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
}
在此先感謝大家。
編輯:在我看來,當獲取VIEW.frame.size,如果這是反覆使用,它會失去其價值?這對我來說似乎很奇怪?
非常感謝回覆,但我無法理解您的意思。我有_mainView,_additionView等設置爲NSViews,我如何創建一個新的一次性NSView?再次感謝 – Cristian 2012-04-17 13:29:37
'NSView * view = [[NSView alloc] initWithSize:someSize];' – 2012-04-17 13:41:28
如果我正確理解答案,我創建一個默認大小的新NSView,然後將視圖更改爲我想要的視圖,然後更改尺寸? – Cristian 2012-04-17 13:44:52