Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当窗口在Swift中变为全屏时,如何获得通知?_Swift_Macos_Fullscreen - Fatal编程技术网

当窗口在Swift中变为全屏时,如何获得通知?

当窗口在Swift中变为全屏时,如何获得通知?,swift,macos,fullscreen,Swift,Macos,Fullscreen,我想在游戏中添加全屏模式设置。但是,如果用户手动切换全屏模式,我需要自动更新设置 如何在全屏切换后立即运行代码?换句话说,当用户单击窗口顶部的绿色按钮使其全屏显示时,如何接收通知 如果没有这些信息,我无法确定如何将应用程序的全屏模式设置与操作系统提供的UI同步。您只需等待来自NSWindow的通知即可。 import SwiftUI import Combine struct SampleView: View { var cancellabel : AnyCancellable?

我想在游戏中添加全屏模式设置。但是,如果用户手动切换全屏模式,我需要自动更新设置

如何在全屏切换后立即运行代码?换句话说,当用户单击窗口顶部的绿色按钮使其全屏显示时,如何接收通知


如果没有这些信息,我无法确定如何将应用程序的全屏模式设置与操作系统提供的UI同步。

您只需等待来自
NSWindow的通知即可。

import SwiftUI
import Combine

struct SampleView: View {
    var cancellabel : AnyCancellable?
        init(){
            cancellabel = NotificationCenter.default.publisher(for: NSWindow.willEnterFullScreenNotification).sink { (notification) in
        print(notification.object)
    }

    var body: some View {

    }
}

使用另一个答案中的代码,我能够构建代码来执行此操作:

在ApplicationIDFinishLaunching中:

NotificationCenter.default.addObserver(forName: NSWindow.willEnterFullScreenNotification, object: nil, queue: OperationQueue.main, using: { note in
    print("Entered Fullscreen")
})

NotificationCenter.default.addObserver(forName: NSWindow.willExitFullScreenNotification, object: nil, queue: OperationQueue.main, using: { note in
    print("Exited Fullscreen")
})

我需要联合收割机库吗?你确定这能以尽可能少的代码量完成任务吗?尽管这段代码对我来说毫无用处,但我还是能够用它来构造我可以使用的代码,并在Xcode中以SwiftUI的形式内置。这是一个心态改变框架。