Как я могу получить уведомление, когда окно становится полноэкранным в SwiftUI? - PullRequest
1 голос
/ 09 января 2020

Я хочу добавить в игру настройку полноэкранного режима. Однако мне нужно автоматически обновить настройку, если пользователь вручную переключает полноэкранный режим.

Как запустить код, как только полноэкранный режим переключается каким-либо образом? Другими словами, как я могу получить уведомление, когда пользователь нажимает зеленую кнопку в верхней части окна, чтобы сделать его полноэкранным?

Без этой информации я не могу понять, как синхронизировать полное приложение настройки режима экрана с пользовательским интерфейсом, предоставленным операционной системой.

Ответы [ 2 ]

5 голосов
/ 09 января 2020

Вам просто нужно дождаться уведомления от 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 {

    }
}
3 голосов
/ 10 января 2020

Используя код из другого ответа, я смог построить код для этого:

В applicationDidFinishLaunching:

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")
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...