我正在寻找一种在使用自动布局时隐藏窗口状态栏的方法。
以下是处理更改状态栏的代码:
- (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];
}
}
但这是关闭状态栏时的外观:
状态栏所在的位置仍然可见。要使状态栏消失的位置该怎么办?
答案 0 :(得分:2)
启用自动版式时,不能使用from typing import Dict
class Convert:
# Class Variables
_my_dict: Dict = None
# Import definitions
def v1_0(self, my_dict):
from format_utils import v1_0 as formatter
return formatter.Formatter().format(my_dict)
# Import definitions
def v1_1(self, my_dict):
from format_utils import v1_1 as formatter
return formatter.Formatter().format(my_dict)
# Function pointer dictionary
# Must be defined after import functions
import_format_util = \
{
"1.0": v1_0,
"1.1": v1_1,
}
def __init__(self, my_dict: Dict)-> None:
# grab the format_version from dictionary passed in
# for simplicity I am going to ignore any KeyErrors being thrown
format_version: str = my_dict['format_version']
# Dynamically import the correct formatter using the dictionary of
# function pointers, and pass my_dict into that formatter
self._my_dict = self.import_format_util[format_version](self, my_dict)
# I now have a correctly formatted dictionary to print
print(self._my_dict)
def main():
dict1 = \
{
"format_version": "1.0",
"other_data": "Change Me!",
}
dict2 = \
{
"format_version": "1.1",
"other_data": "Change Me!",
}
# Initialize Convert object with first dict. __init__() will print dict
init1 = Convert(dict1)
# Initialize Convert object with second dict. __init__() will print dict
init2 = Convert(dict2)
main()
。最简单的方法是将Formatter
与-setFrame
一起使用。现在,您只需隐藏状态栏,堆栈视图便会删除状态栏并扩展滚动视图。