如何解决跟踪用户何时返回应用程序或将焦点从Mac Catalyst窗口移开
我想使用UISceneSession
生命周期的委托方法来帮助我的Mac Catalyst应用程序在用户将焦点移离该应用程序(窗口)然后又回到该应用程序(窗口)时通知我。
该应用程序首次在Mac上启动时,会成功调用sceneWillEnterForeground
和sceneDidBecomeActive
,但是当我专注于另一个应用程序时,则不会调用诸如sceneWillEnterForeground
之类的委托方法。为什么?
解决方法
如果选中NSWindowDelegate.windowDidBecomeMain(_:)
,您会注意到其参数是一个名为NSWindowDidBecomeMainNotification
的通知。
因此,您可以观察到该通知,以便在应用程序中的窗口变为焦点时得到通知:
NotificationCenter.default.addObserver(forName: .init("NSWindowDidBecomeMainNotification"),object: nil,queue: nil) { notification in
print("This window became focused:",notification.object)
}
当您应用中的窗口失去焦点时,您还可以观察NSWindowDidResignMainNotification
以获得通知。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。