2015-07-01 58 views
0

我已經下載了Apple's example GLEssentials。然後在GLEssentialsWindowController類的實現增加了一個程序窗口的方法調整awakeFromNibXcode示例中的窗口大小調整問題

-(void) awakeFromNib 
{ 
    NSRect rect = [view convertRectToBacking:NSMakeRect(0,0,500,500)]; 
    [self.window setFrame:rect display:YES animate:NO]; 
} 

這裏談到的最有趣的。當我在工作的iMac上進行如此簡單的操作時,根本沒有任何問題。窗口大小成爲我的預期。 但是,當我在我的MacBook窗口上執行此操作時,將存儲在.xib文件中的值調整爲大小。然後,我手動調整窗口的大小,然後退出應用程序。然後再次啓動它。窗口大小調整爲該窗口在關閉前最後一次啓動時的大小。

有什麼建議嗎?

回答

0

我的理解,NSOpenGLView調用類調整窗口被初始化即使方法,這就是爲什麼只有解決不允許窗口調整之後awakeFromNib事件是從窗口樣式刪除可調整大小的面膜:

[window setStyleMask:[window styleMask] & ~NSResizableWindowMask]; 

所以最終的解決方案將是這樣的:

- (void) awakeFromNib 
{ 
[self.window setStyleMask:[self.window styleMask] & ~NSResizableWindowMask]; 
NSRect rect = [view convertRectToBacking:NSMakeRect(0,0,500,500)]; 
[self.window setFrame:rect display:YES animate:NO]; 
} 

所以目標窗口將被調整爲500×500,而並不活動atter在.xib文件中存儲了大小。