2012-02-13 66 views
4

我正在開發一個應用程序,用戶可以使用按鈕顯示/隱藏工具欄。問題如下:如果用戶選擇隱藏工具欄,然後進入全屏模式,則會顯示工具欄。NSToolbar進入全屏模式時顯示

用戶界面以編程方式創建(即不使用Interface Builder)。

這是工具欄創建的應用程序委託:

mainToolbar = [[NSToolbar alloc] initWithIdentifier:MAIN_TOOLBAR]; 
[mainToolbar setAllowsUserCustomization:NO]; 
[mainToolbar setDisplayMode:NSToolbarDisplayModeIconOnly]; 
[mainToolbar setDelegate:self]; 
[window setToolbar: mainToolbar]; 

這些是由按鈕執行的操作:

-(void)hideToolbar { 
    editing = YES; 
    [mainToolbar setVisible:NO]; 
} 

-(void)showToolbar { 
    editing = NO; 
    [mainToolbar setVisible:YES]; 
} 

我必須解決使用窗口委託方法,但仍然是它試圖無論editing的值如何,都會在進入全屏模式時顯示工具欄。

- (void)windowDidEnterFullScreen:(NSNotification *)notification { 
    [mainToolbar setVisible:!editing]; 

}

- (void)windowDidExitFullScreen:(NSNotification *)notification { 
[mainToolbar setVisible:!editing]; 

}

提前非常感謝!

+0

沒有你弄清楚它怎麼可能,我因爲同樣的問題的痛苦。 – mohacs 2012-11-24 17:19:14

+0

不,對不起! – Mariana 2012-11-27 22:44:09

回答

9

當窗口變爲全屏時,我無法找到保持工具欄隱藏/顯示狀態的方法,但您可以將工具欄設置爲始終隱藏在全屏中,並在用戶轉到屏幕的頂部。在你的窗口委託中,你可以設置NSApplicationPresentationOptions作爲其中一個選項返回NSApplicationPresentationAutoHideToolbar。我的是這樣:

- (NSApplicationPresentationOptions)window:(NSWindow *)window willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions 
{ 
    return (NSApplicationPresentationFullScreen |  
      NSApplicationPresentationHideDock |   
      NSApplicationPresentationAutoHideMenuBar | 
      NSApplicationPresentationAutoHideToolbar); 
} 

下面是相關文檔:https://developer.apple.com/library/mac/#documentation/General/Conceptual/MOSXAppProgrammingGuide/FullScreenApp/FullScreenApp.html

+0

非常感謝 – susemi99 2015-09-22 07:19:54