Mar*_*ana 5 macos cocoa fullscreen nswindow nstoolbar
我正在开发一个应用程序,用户可以使用按钮显示/隐藏工具栏.问题如下:如果用户选择隐藏工具栏然后进入全屏模式,则会显示工具栏.
用户界面是以编程方式创建的(即不使用Interface Builder).
这是app delegate中的工具栏创建:
mainToolbar = [[NSToolbar alloc] initWithIdentifier:MAIN_TOOLBAR];
[mainToolbar setAllowsUserCustomization:NO];
[mainToolbar setDisplayMode:NSToolbarDisplayModeIconOnly];
[mainToolbar setDelegate:self];
[window setToolbar: mainToolbar];
Run Code Online (Sandbox Code Playgroud)
这些是按钮执行的操作:
-(void)hideToolbar {
editing = YES;
[mainToolbar setVisible:NO];
}
-(void)showToolbar {
editing = NO;
[mainToolbar setVisible:YES];
}
Run Code Online (Sandbox Code Playgroud)
我试图使用窗口委托方法修复它,但仍然在进入全屏模式时显示工具栏,无论其值如何editing.
- (void)windowDidEnterFullScreen:(NSNotification *)notification {
[mainToolbar setVisible:!editing];
Run Code Online (Sandbox Code Playgroud)
}
- (void)windowDidExitFullScreen:(NSNotification *)notification {
[mainToolbar setVisible:!editing];
Run Code Online (Sandbox Code Playgroud)
}
提前谢谢了!
Jon*_*uys 10
当窗口全屏显示时,我无法找到保持工具栏的隐藏/显示状态的方法,但是您可以将工具栏设置为始终以全屏隐藏,并在用户转到顶部时设置动画.屏幕.在窗口委托中,您可以设置NSApplicationPresentationOptions以返回NSApplicationPresentationAutoHideToolbar作为其中一个选项.我看起来像这样:
- (NSApplicationPresentationOptions)window:(NSWindow *)window willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions
{
return (NSApplicationPresentationFullScreen |
NSApplicationPresentationHideDock |
NSApplicationPresentationAutoHideMenuBar |
NSApplicationPresentationAutoHideToolbar);
}
Run Code Online (Sandbox Code Playgroud)
以下是相关文档:https://developer.apple.com/library/mac/#documentation/General/Conceptual/MOSXAppProgrammingGuide/FullScreenApp/FullScreenApp.html
| 归档时间: |
|
| 查看次数: |
2137 次 |
| 最近记录: |