当前位置:首页 » 《随便一记》 » 正文

【iOS】如何在 NSViewController、NSView 中关闭当前 NSWindowController ?_圆号本号

16 人参与  2021年12月15日 15:41  分类 : 《随便一记》  评论

点击全文阅读


# 前言

一般来说,用户会通电点击 x 按钮来关闭

  • 但有些场景,比如登录页需要在登录成功时关闭,这是应该怎么办呢?

# 解决

网上一般会说这种方案:(不建议使用)

class BaseWindowController: NSWindowController {
    ...
    @objc func terminateWindow(notification: NSNotification) {
    	...
        NSApp.terminate(self)
    }
    ...
}
  • 使用 NSApp.terminate(self) 确实吧当前 WIndowController 关了,但是把其他的 WindowController 也关了
  • 用户登录成功 app 直接退出?不太合适。所以我有开始了探索

# NSWindowController :: close()

我阅读了下 WindowController 的借口,发现其中有一个 close 方法,我们稍加替换,吧 NSApp 换成我们的 WindowController 本身看看效果

class BaseWindowController: NSWindowController {
    ...
    @objc func terminateWindow(notification: NSNotification) {
    	...
        close()
    }
    ...
}
  • 完美关闭登陆页~ 且其他页面照常运行~ 但这个的方法,前提是得获得当前 WIndowController 实例,所以得在单例中、ViewController 中或者做全局的 WindowController 管理?太麻烦了
  • 而且这个方法毕竟不是官方推荐的,就像手动调用 ViewController 的 layoutSubViews 一样,感觉不稳,所以我要找个稳妥的方法给大家

# 推荐 NSView :: window :: close

有没有一个办法,能直接在 view 上,把它的 WindowController 关了呢?我帮他家搜寻了一番,终于找到了正解

extension LoginViewController {
    @objc func onSucceed(notification: NSNotification) {
    	...
        NSView().window?.close()
        ...
    }
    
    @objc func onFailed(notification: NSNotification) {
        /// TODO:
    }
}
  • 直接对当前 View 所在 window 执行 close 方法就可以啦,系统会帮我们进行后续的操作
  • 注意这里要分 NSWindowControoler、NSViewController 和 NSView ,具体在使用分别帮大家总结一个吧

# 总结

  • 帮大家总结一下
  • NSWindowController :: 我们直接使用 self.window.close() 就可以啦
  • NSViewController :: 我们需要通过 self.view.window.close() 来关闭
  • NSView :: 我们直接使用 self.window.close() 就可以啦
  • 好多人私聊我“ 27 岁没文凭能不能转行程序员?” 我花了好大劲做了期视频科普下
  • 但是播放量好滴,观众老爷们帮我看看原因 27 岁没文凭能不能转行程序员? 😭


点击全文阅读


本文链接:http://zhangshiyu.com/post/31634.html

方法  关闭  关了  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 我给第三十八任老公过喜,宋青青必读文_我给第三十八任老公过喜,宋青青必读文
  • 重生妹妹与自闭症哥哥结局+番外(沈寒舟沈清然)列表_重生妹妹与自闭症哥哥结局+番外(沈寒舟沈清然)全书+后续+结局在线
  • 秦见鹿秦临渊结局+番外必读文全书免费秦见鹿秦临渊结局+番外必读文全书免费
  • (番外)+(全书)错位时空的恋人+后续+结局(苏璃沈星澜)全书在线_错位时空的恋人+后续+结局免费列表_笔趣阁(苏璃沈星澜)
  • 「被卖十亿后,她的马甲亮啦」章节彩蛋限时释出‌_花落牧轻舟小说章节分享
  • 周语徐西洲(爱已戛然而止全书+后续+结局)全书周语徐西洲读结局_(周语徐西洲爱已戛然而止全书+后续+结局读全书结局)结局列表_笔趣阁(周语徐西洲)
  • 重生妹妹与自闭症哥哥(沈寒舟沈清然)全书沈寒舟沈清然结局_沈寒舟沈清然+结局列表_笔趣阁(重生妹妹与自闭症哥哥全书+后续)
  • 给五十任夫君过喜的任务娘交给我了,许莺莺列表_给五十任夫君过喜的任务娘交给我了,许莺莺
  • [恋爱脑养女被全网网暴]章节世界观揭秘篇‌_[陆琦温言魏敛]章节试读
  • 「外婆葬身火海那夜,失忆男友终于悔悟」后续全文免费阅读_[沈也苏漾温言]角色专属支线试读入口
  • 全书浏览她已走远后续+(苏然霍霆舟)_她已走远后续+(苏然霍霆舟)全书结局
  • 我再一次见到霍霆舟,是在酒吧。医院部门聚会。我们的包房,正好在霍霆舟他们旁边。年轻的罗医生却喝了酒,在走廊看见路过的叶南,要她的微信。

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1