2012-02-13 67 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