0

我正在NSViewController从另一个 ViewController 进行演示。

[self presentViewControllerAsSheet:secondViewController];

这是方法NSWindow

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

是否有与上述 ForNSViewController和完成处理程序等效的方法。

4

1 回答 1

0

这够了吗?

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)
    }
于 2018-06-26T21:37:46.800 回答