如何在Mac Catalyst应用程序中保留拆分视图分隔器配置?



有侧边栏的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")
}

最新更新