SwiftUI 做的 macOS App 里,如果用 CMD+W 关闭窗口,然后点击 Dock 上的图标重开,窗口尺寸不会被记住

2022-06-05 12:47:45 +08:00
 Livid
这里有一个关于这个问题的带图描述:

https://developer.apple.com/forums/thread/702465

这个问题在目前版本( Xcode 13 + macOS 12 )的 SwiftUI 里有解决方法么?
2848 次点击
所在节点    Swift
5 条回复
dingwen07
2022-06-05 16:02:18 +08:00
我试了一下应该是 SwiftUI 的 Telegram for macOS ,窗口尺寸和位置会保持
源代码: https://github.com/overtake/TelegramSwift
dingwen07
2022-06-05 16:10:59 +08:00
忽略#1 ,这个不是 swift ui
chipmuck
2022-06-08 09:27:02 +08:00
macOS 13.0+ 似乎可以通过 Window 和 Scene 上的 defaultPosition 和 defaultSize 来处理了。

https://developer.apple.com/documentation/swiftui/window/scene-implementations
https://developer.apple.com/videos/play/wwdc2022/10052/
Livid
2022-08-28 03:55:38 +08:00
最近又看了一下这个问题,有一些新的发现。

macOS 恢复窗口尺寸的依据是 frameAutosaveName 。

而用 SwiftUI 创建的 window ,在每次 CMD+W 关闭又打开之后,会获得一个新的 frameAutosaveName 。

所以,理论上,如果能够让开发者自己固定 SwiftUI 的 frameAutosaveName 这个值,应该这个问题就解决了。

xlsepiphone
2022-08-28 11:55:15 +08:00
野路子就是自己存一下窗口大小和坐标,打开的时候手动设置一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/857358

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX