Swi*_*y85 1 macos xcode cocoa nsviewcontroller swift
我正在尝试使用 swift for OS X 从笔尖添加一个新的子视图。
到目前为止,我已经:
我想在应用程序加载时将此子视图添加到我的主视图中。
在我的 ViewController (主窗口的 ViewController )中,我有。
import Cocoa
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
let newSubView = TestSubView();
self.view.addSubview(newSubView.view);
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
Failed to set (contentViewController) user defined inspected property on (NSWindow):
-[NSNib initWithNibNamed:bundle:] could not load the nibName: temp.TestSubView in bundle (null).
Run Code Online (Sandbox Code Playgroud)
我意识到我需要调整这个子视图的大小和位置,但我似乎无法做到这一点。
我花了一天的大部分时间试图解决这个问题,所以任何帮助都将不胜感激。
我终于让这件事起作用了。我的新代码看起来像
import Cocoa
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
let subview = TestSubView(nibName: "TestSubView", bundle: nil)!
self.view.addSubview(subview.view)
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人建议,如果笔尖名称和类名称相同,则不需要声明 nibname:(正如我最初尝试做的那样),但文档没有提到这一点 - 解释了为什么它不起作用!
为了繁荣,这在 OS X Yosemite (10.10.1) 上使用 Xcode 6.1.1 对我有用
| 归档时间: |
|
| 查看次数: |
11601 次 |
| 最近记录: |