【问题标题】:NSToolbar shown when entering fullscreenmode进入全屏模式时显示 NSToolbar
【发布时间】:2012-03-05 00:50:30
【问题描述】:

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

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

}

非常感谢!

【问题讨论】:

  • 你知道是怎么回事吗,我因为同样的问题而受苦。

标签: macos cocoa fullscreen nswindow nstoolbar


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多