【发布时间】:2016-06-16 22:07:57
【问题描述】:
使用 Storyboard 和 Swift 在 OS X 10.11.5 上使用 Xcode 7.3.1
我正在尝试为 OS X 学习 Swift 编程,因此我正在尝试将我已经用 Java 编写的应用程序移植到本机 OS X 代码中。该应用程序需要垂直拆分窗口的内容,这是我使用 JavaFX 中的 BorderPane 完成的。
我试图在 Xcode 中使用 NSSplitViewController 来执行此操作,但由于某种原因,拆分视图控制器会导致应用程序窗口在我运行应用程序时不显示。如果我添加一个简单的 NSViewController,则窗口显示得很好。
我使用this video 作为参考,但相同的步骤(即拖入新的“垂直拆分视图控制器”并通过设置为窗口内容将其连接到窗口控制器)不会产生相同的结果。我知道视频有点老了,但过程应该差不多吧?
这里是a screenshot of my storyboard。
TL;DR:使用 Storyboards 和 Swift 为 OS X 创建了一个新的 Xcode 项目,将 SplitViewController 设置为窗口内容,运行应用程序,但窗口不显示。
- 有什么我没有做的吗?
- 这只是一个错误吗?
- 有什么办法可以让窗口显示拆分视图控制器吗?
更新
我尝试子类化 NSWindowController 以查看是否可以强制加载窗口,你瞧,确实调用了 windowDidLoad 方法,但仍然没有窗口...
这是我的WindowController 子类的代码:
import Cocoa
class WindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
print("The window did load.")
}
}
当我用它运行程序时,它会打印出消息“窗口确实加载了”。进入输出,但没有别的,所以没有运行时错误。
【问题讨论】:
-
NSWindow 不是活的动物。它并不总是必须在启动时出现。如果它没有出现,让它以编程方式出现。
-
我该怎么做?我对 xcode 和 swift 完全陌生
标签: xcode swift macos xcode-storyboard