进入全屏模式时显示NSToolbar

6

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

用户界面是以编程方式创建的(即未使用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];

}

Many thanks in advance!


你解决了吗?我因为同样的问题而苦恼。 - modus
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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接