本文的方法针对OS X应用开发。

如果想在某个ViewController中,用模态窗口的方式,打开某个Storyboard中定义的WindowController。可用以下方式。

let story = NSStoryboard(name: "DebugStoryboard", bundle: nil)
let ctl = story.instantiateInitialController() as! NSWindowController
NSApp.runModalForWindow(ctl.window!)

其中,DebugStoryboard是Storyboard对应的文件名。

这种方式,需要在模态窗口关闭时,解除模态状态,否则,程序会假死,不能响应任何的点击动作。

要解除Modal状态,自定义窗口的contentViewController需要继承NSWindowDelegate协议,然后在viewDidDisappear()方法中加入NSApp.stopModal()这一句。

class DebugViewController: NSTabViewController,NSWindowDelegate {
 
  override func viewDidLoad() {
    super.viewDidLoad()
    // Do view setup here.
  }
  
  override func viewDidDisappear() {
    //窗口关闭时,解绑Modal状态,否则APP假死
    NSApp.stopModal()
 
  }
 
 
}

最新文章

  1. 多项目并行开发如何做到快速切换——sublime Text3
  2. Angular 基础入门
  3. jquery中获取元素的几种方式小结
  4. Win10 利用安装盘启用 .NET Framework 3.5
  5. IOS第二天多线程-04简化单例模式
  6. #ifdef #ifndef使用
  7. 3D分析之Functional Surface工具箱(转)
  8. Android(java)学习笔记185:xml文件生成
  9. 不得不看的JVM内存管理
  10. 重新想象 Windows 8 Store Apps (15) - 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
  11. 实现app上对csdn的文章列表上拉刷新下拉加载以及加入缓存文章列表的功能 (制作csdn app 四)
  12. [转]以新浪为例浅谈XSS
  13. (转)java并发之Executor
  14. .net core控制台应用程序初识
  15. oracle数据库中的trim不起作用
  16. sublime包管理
  17. Notes of Daily Scrum Meeting(12.16)
  18. SecureCRT同时发送命令到所有主机
  19. Android Studio 修改Logcat的颜色
  20. Unity 3D游戏-NPC对话系统With XML

热门文章

  1. 用css3实现各种图标效果(1)
  2. js实现身份证号码验证
  3. python bottle框架
  4. Bitmap四种属性
  5. 获取List集合中最大值的方法
  6. IIS------无法打开登录所请求的数据库 "company"。登录失败。 用户 'IIS APPPOOL\AppPool 4.0' 登录失败。
  7. Python MySQLdb在Linux下的快速安装
  8. MySQL外键使用需要注意的几点
  9. Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
  10. linux 下 zip unzip压缩与解压