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 上初始化