6

我正在开发一个应用程序,其中工具栏可以由用户使用按钮显示/隐藏。问题如下:如果用户选择隐藏工具栏,然后进入全屏模式,则显示工具栏。

用户界面以编程方式创建(即不使用界面生成器)。

这是应用程序委托中的工具栏创建:

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];

}

提前谢谢了!

4

1 回答 1

10

当窗口全屏显示时,我找不到保持工具栏隐藏/显示状态的方法,但是您可以将工具栏设置为始终全屏隐藏,并在用户转到顶部时设置动画屏幕。在您的窗口委托中,您可以设置 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

于 2013-04-16T01:05:36.803 回答