有侧边栏的Mac应用程序(Mail, Finder等)允许你调整侧边栏的宽度,并且该宽度在应用程序启动时保持不变。你可以通过在你的NSSplitView
上分配autosaveName
来在AppKit应用程序中启用这个行为。如何在使用UISplitViewController
的Mac Catalyst应用程序中做到这一点?
默认情况下,我的Catalyst应用程序的侧边栏是相当宽的,所以每次用户打开它时,他们都必须调整它的大小。
我联系了一个能够在他们的应用程序中实现这一点的朋友。他们说你可以手动将当前宽度保存为UserDefaults,并在创建分屏视图控制器时将其preferredPrimaryColumnWidth
设置为最后保存的宽度。好了!
在我的UISplitViewController
子类中我添加了:
init() {
let lastWidth = UserDefaults.standard.integer(forKey: "SidebarWidth")
let initialWidth = lastWidth > 0 ? CGFloat(lastWidth) : 220
preferredPrimaryColumnWidth = initialWidth
//...
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UserDefaults.standard.setValue(Int(primaryColumnWidth), forKey: "SidebarWidth")
}