Swift 从 .xib 文件实例化 NSView

标签 swift

我创建了一个 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/

相关文章:

swift - SDWebImage for Swift,模糊效果可以吗?

ios - 切换屏幕/ View Controller

Swift 脚本鼠标移动在 scheduledTimer 内不可靠

ios - 未知类型名称类,您是说类吗

ios - 我看不到预期的 View Controller

ios - Swift - 如何将 View Controller 的引用传递给子 UIView 类?

swift - 日期格式 Swift - 不止一种输入格式

ios - 我如何获得带按钮的滚动条?

swift - self.tabBarController?.selectedIndex 并在另一个 View Controller 中执行功能

ios - 如何在不同的方向上改变 View