美文网首页MacDeveloper
NSWindowController 如何模态显示窗口

NSWindowController 如何模态显示窗口

作者: _我和你一样 | 来源:发表于2020-03-16 10:47 被阅读0次

    NSWindowController 如何模态显示窗口?

    在苹果的开发者文档中,有一个show方法

    func showWindow(_ sender: Any?)
    

    然而此方法,并不会模态显示。

    比如,在某些应用中,当检测到需要用户登录的行为时,我们就是需要登录注册的窗口以模态的形式出现,该怎么办呢?

    我们可以重写 showWindow方法,调用应用的模态显示窗口的方法:

        override func showWindow(_ sender: Any?) {
             NSApp.runModal(for: self.window!)
        }
    

    runModal方法,必然要和stopModal成对使用,否则的话,关闭之后的其他窗口将无法正常使用。

    我们可以在window即将关闭的时候,结束此窗口的模态状态。

    首先我们要在窗口已经加载的时候,给窗口设置代理,然后实现相关的代理协议。

    extension SignWindowController:NSWindowDelegate {
        func windowWillClose(_ notification: Notification) {
            NSApp.stopModal()
        }
    }
    

    相关文章

      网友评论

        本文标题:NSWindowController 如何模态显示窗口

        本文链接:https://www.haomeiwen.com/subject/sggwehtx.html