如何在 Mac Catalyst 中检测窗口大小调整?

Posted

技术标签:

【中文标题】如何在 Mac Catalyst 中检测窗口大小调整?【英文标题】:How to detect window resizing in Mac Catalyst? 【发布时间】:2020-01-29 05:56:59 【问题描述】:

当用户在以下情况下调整窗口大小时如何获得通知:

 NotificationCenter.default.addObserver(self, selector: #selector(function), name: NSWindowDidResizeNotification, object: nil)

在 Mac Catalyst 中不可用

【问题讨论】:

【参考方案1】:

就像在 ios 中一样。在您的窗口场景委托中使用windowScene(_:didUpdate:interfaceOrientation:traitCollection:),或在您的视图控制器中实现viewWillTransition(to:with:)

【讨论】:

如果它似乎并不总是在调整大小,尤其是在尝试全屏时,请将您要更新的任何内容包装在 DispatchQueue.main.async ... 中。 如果您的应用中没有使用场景怎么办? @Oscar 你错过了答案的第二部分吗? 嗨,里奥。会尽快尝试。 我在 viewWillTransitionTo 中实现了缩放计算,效果很好。

以上是关于如何在 Mac Catalyst 中检测窗口大小调整?的主要内容,如果未能解决你的问题,请参考以下文章

Mac-catalyst - Mac 催化剂应用程序的最小窗口大小

如何更改 Mac Catalyst 窗口场景中的窗口标题?

在 Mac Catalyst 中打开一个新窗口

检测 UIKit for Mac (Catalyst) 中的单个修饰符键更改

是否可以在 Mac Catalyst 中使用全屏?

如何在 Mac 上的 Mac Catalyst 应用程序中使用钥匙串?