Swift-打开其它Storyboard中的自定义模态窗口
2024-10-10 14:52:51
本文的方法针对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()
}
}
最新文章
- 多项目并行开发如何做到快速切换——sublime Text3
- Angular 基础入门
- jquery中获取元素的几种方式小结
- Win10 利用安装盘启用 .NET Framework 3.5
- IOS第二天多线程-04简化单例模式
- #ifdef #ifndef使用
- 3D分析之Functional Surface工具箱(转)
- Android(java)学习笔记185:xml文件生成
- 不得不看的JVM内存管理
- 重新想象 Windows 8 Store Apps (15) - 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
- 实现app上对csdn的文章列表上拉刷新下拉加载以及加入缓存文章列表的功能 (制作csdn app 四)
- [转]以新浪为例浅谈XSS
- (转)java并发之Executor
- .net core控制台应用程序初识
- oracle数据库中的trim不起作用
- sublime包管理
- Notes of Daily Scrum Meeting(12.16)
- SecureCRT同时发送命令到所有主机
- Android Studio 修改Logcat的颜色
- Unity 3D游戏-NPC对话系统With XML
热门文章
- 用css3实现各种图标效果(1)
- js实现身份证号码验证
- python bottle框架
- Bitmap四种属性
- 获取List集合中最大值的方法
- IIS------无法打开登录所请求的数据库 ";company";。登录失败。 用户 'IIS APPPOOL\AppPool 4.0' 登录失败。
- Python MySQLdb在Linux下的快速安装
- MySQL外键使用需要注意的几点
- Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
- linux 下 zip unzip压缩与解压