我创建了一个 HeadView.xib 文件和它的类文件 HeadView.swift。在 xib 文件中,我将类设置为 HeadView。
在我的 ViewController 中,我调用了以下代码:
var myHeadView: HeadView?
@IBAction func buttonClicked(sender : NSButton?) {
let myrect = CGRect(x: 0, y: 0, width: 350, height: 350)
posView = POSView.init(frame:myrect)
}
编译器提示以下错误:
Expected member name or constructor call after type name and
'()' is not convertible to 'HeadView'
在我的 HeadView 类中,我希望使用以下代码实例化 xib 文件
class HeadView: NSView {
init(frame frameRect: NSRect) {
super.init(frame:frameRect)
var viewArray: NSArray?
NSBundle.mainBundle().loadNibNamed("HeadView", owner: nil, topLevelObjects: &viewArray)
return viewArray.ObjectAtIndex(0)
}
}
在 Swift 中 init 返回什么?有没有更好的方法从文件实例化 View ?
最佳答案
你不会在 Swift 中调用 init
posView = POSView.init(frame:myrect)
应该是
posView = POSView(frame:myrect)
关于Swift 从 .xib 文件实例化 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24154180/