viewDidLoad 函数未在 Xcode 6.2 swift 应用程序中调用,但在 OS X 上的 Xcode 6.4 swift 应用程序中调用

Posted

技术标签:

【中文标题】viewDidLoad 函数未在 Xcode 6.2 swift 应用程序中调用,但在 OS X 上的 Xcode 6.4 swift 应用程序中调用【英文标题】:viewDidLoad function is not called in Xcode 6.2 swift app but called in Xcode 6.4 swift app on OS X 【发布时间】:2015-11-11 17:37:40 【问题描述】:

我正在为 OS X 创建新的 swift 应用程序:

1) File->New Project -> Cocoa Application -> 选择 Swift 语言,Use Storyboards 不应该被选中。

所以我在项目中看到了 MainMenu.xib 和 AppDelegate.swift 文件。

2) New File -> Cocoa Class -> Class Name: ViewController, Subclass of: NSViewController, language swift, 同样创建 Xib 文件不勾选。

所以我在项目中看到了 ViewController.swift 文件。

3) 转到 MainMenu.xib Interface Builder,它显示具有 NSView 的 NSWindow 对象。 添加 ViewController 对象,将其 Outlet“视图”连接到我的 NSView 对象。然后转到 ViewController 的 Identity Inspector 并将类设置为“ViewController”。

4) 启动应用程序

所以在 XCode 6.4 (Yosemite) 中 ViewController.swift 中的 ViewDidLoad() 函数被成功调用,但在 XCode 6.2 (Mavericks) 中它没有被调用。

如何解决?我对处理 ViewController 函数 viewDidLoad、viewDidAppear、viewDidDisapper 很感兴趣。如果不可能,我想使用一些其他函数在我的窗口出现时调用,消失......

我尝试将 File 的 Owner Class 更改为“ViewController”并将其 Outlet“view”连接到我的 NSView 对象,但它也没有帮助。

【问题讨论】:

【参考方案1】:

我是这样做的。我不确定这是否是正确的方法。无论如何它都起作用了。

    打开 MainMenu.xib 如果没有 ViewController 对象,请添加。 将视图链接到 ViewController 对象。

这样 viewDidload 将起作用。

Xcode 版本:7.3.1, OS X 版本:10.11.4

【讨论】:

以上是关于viewDidLoad 函数未在 Xcode 6.2 swift 应用程序中调用,但在 OS X 上的 Xcode 6.4 swift 应用程序中调用的主要内容,如果未能解决你的问题,请参考以下文章

requestAuthorizationToShareTypes 方法未在 iOS 8 Xcode 6 中显示权限提示

requestAuthorizationToShareTypes 方法未在 iOS 8 Xcode 6 中显示权限提示

CLLocationManager 未在 viewDidLoad 上初始化

nib 文件未在 viewDidLoad 中注册

IBAction 方法未在 viewDidLoad 方法中调用?

Swift iOS SearchController 未在 ViewDidLoad 中调用