обработчик завершения для PresentViewControllerAsSheet OSX

Я представляю NSViewController из другого ViewController.

[self presentViewControllerAsSheet:secondViewController];

вот метод NSWindow

- (void)beginSheet:(NSWindow *)sheetWindow 
 completionHandler:(void (^)(NSModalResponse returnCode))handler;

Есть ли какой-либо эквивалентный выше метод для NSViewController с обработчиком завершения.


person S. S    schedule 26.06.2018    source источник


Ответы (1)


Этого достаточно?

class SOMEViewController: NSViewController {
    private var parentWindow : NSWindow? = nil

    public func beginSheetModal(for parentWindow: NSWindow, 
                                handler : @escaping (NSApplication.ModalResponse) -> Void) {
        self.parentWindow = parentWindow
        guard let sheet = self.view.window else { return }

        parentWindow.beginSheet(sheet, completionHandler: handler)
    }

    public func endSheet(_ response : NSApplication.ModalResponse) {
        guard let parent = self.parentWindow else { return }
        guard let sheet = self.view.window else { return }

        parent.endSheet(sheet, returnCode: response)
    }
person MyCometG3    schedule 26.06.2018