Mos*_*she 9 macos objective-c window-management xcode-storyboard swift
我正在开发一个全新的OS X应用程序,我采用了一些大胆的工作方式,使用了一些我之前没有用过的技术.(我是iOS开发人员.)
我在我的应用程序中使用Storyboards,Swift和Core Data,所有这些都来自Xcode模板.当我的应用程序启动时,它会从Storyboard创建一个NSWindowController.
在我用Objective-C制作的另一个OS X应用程序中,我使用委托方法applicationShouldHandleReopen:hasVisibleWindows:告诉窗口控制器调出窗口控制器的窗口.
我知道Swift中的语言语义保持不变,但Core Data和Storyboards给我留下了两个问题.
我的项目使用Core Data的事实是否将其更改为"基于文档的应用程序",从而改变了窗口的管理方式?
在我的旧项目中,我使用的是笔尖而不是故事板.似乎我手动实例化NSWindowController那里,并使用它来管理重新打开.如果有一种方法可以获得我的故事板无疑为我做的那个,那将是最佳的,对吧?只是将一个插座连接到我的应用程序代表的方式去?还有其他约定吗?
不.检查"创建基于文档的应用程序"是使其成为基于文档的应用程序的原因.使用核心数据的决定是分开的.
制作基于OS X Document的应用程序时获得的故事板有点不典型.请注意,故事板中没有箭头告诉您入口的位置.会发生什么是"文档"被实例化.它有一个方法:
override func makeWindowControllers() {
// Returns the Storyboard that contains your Document window.
let storyboard = NSStoryboard(name: "Main", bundle: nil)!
let windowController = storyboard.instantiateControllerWithIdentifier("Document Window Controller") as NSWindowController
self.addWindowController(windowController)
}
Run Code Online (Sandbox Code Playgroud)它会在故事板中查找带有标识符@"文档窗口控制器"的控制器(恰好就是窗口控制器).Document保留了windowControllers的集合.所以Document实例化它并将windowController添加到该列表中.
所以Document已经引用了Document.windowControllers中的窗口控制器
(有人可以告诉我为什么创建文档?我看不到实际触发它的创建)
| 归档时间: |
|
| 查看次数: |
3046 次 |
| 最近记录: |