使用自动布局时在 MacOS 上隐藏状态栏
Hiding status bar on MacOS when using Auto Layout
我正在寻找一种在使用 auto-layout 时隐藏 window 状态栏的方法。
这是处理更改状态栏的代码:
- (void)adjustStatusBar
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSRect scrollViewRect;
BOOL statusBar = [defaults boolForKey: TSSTStatusbarVisible];
if(statusBar)
{
scrollViewRect = [[[self window] contentView] frame];
scrollViewRect = NSMakeRect(NSMinX(scrollViewRect),
NSMinY(scrollViewRect) + 23,
NSWidth(scrollViewRect),
NSHeight(scrollViewRect) - 23);
[[self window] setContentBorderThickness: 23 forEdge: NSMinYEdge];
[pageScrollView setFrame: scrollViewRect];
[progressBar setHidden: NO];
[self resizeWindow];
}
else
{
scrollViewRect = [[[self window] contentView] frame];
[progressBar setHidden: YES];
[pageScrollView setFrame: scrollViewRect];
[[self window] setContentBorderThickness: 0 forEdge: NSMinYEdge];
[self resizeWindow];
}
}
但这是状态栏关闭时的样子:
状态栏所在的位置仍然可见。需要做些什么才能使状态栏消失的地方消失?
当自动布局处于活动状态时,您不能使用 -setFrame
。最简单的方法是使用 NSStackView
和 .detachesHiddenViews = YES
。现在您只需隐藏您的状态栏,堆栈视图会负责移除它并展开滚动视图。
我正在寻找一种在使用 auto-layout 时隐藏 window 状态栏的方法。
这是处理更改状态栏的代码:
- (void)adjustStatusBar
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSRect scrollViewRect;
BOOL statusBar = [defaults boolForKey: TSSTStatusbarVisible];
if(statusBar)
{
scrollViewRect = [[[self window] contentView] frame];
scrollViewRect = NSMakeRect(NSMinX(scrollViewRect),
NSMinY(scrollViewRect) + 23,
NSWidth(scrollViewRect),
NSHeight(scrollViewRect) - 23);
[[self window] setContentBorderThickness: 23 forEdge: NSMinYEdge];
[pageScrollView setFrame: scrollViewRect];
[progressBar setHidden: NO];
[self resizeWindow];
}
else
{
scrollViewRect = [[[self window] contentView] frame];
[progressBar setHidden: YES];
[pageScrollView setFrame: scrollViewRect];
[[self window] setContentBorderThickness: 0 forEdge: NSMinYEdge];
[self resizeWindow];
}
}
但这是状态栏关闭时的样子:
状态栏所在的位置仍然可见。需要做些什么才能使状态栏消失的地方消失?
当自动布局处于活动状态时,您不能使用 -setFrame
。最简单的方法是使用 NSStackView
和 .detachesHiddenViews = YES
。现在您只需隐藏您的状态栏,堆栈视图会负责移除它并展开滚动视图。