引用以编程方式创建的对象

时间:2015-01-25 18:49:16

标签: swift desktop-application

真的很难弄清楚如何从应用程序的其他地方以编程方式访问我创建的对象。 到目前为止,我只是在IB中创建了所有对象,并为它们提供了IBOutlets。

现在我需要访问我从App Delegate方法创建的NSRect。

import Cocoa

class CustomUrlTextField: NSTextField {

    override func drawRect(dirtyRect: NSRect) {
        super.drawRect(dirtyRect)
        // create page loading progress indicator
        var progress:CGFloat = 0.5
        var progressrect = NSRect(origin: CGPoint(x: 2, y: 2), size: CGSize(width: self.bounds.width - 4, height: self.bounds.height - 5))
        progressrect.size.width *= progress
        NSColor(calibratedRed: 0.11, green: 0.43, blue: 0.90, alpha: 1).setFill()
        NSRectFillUsingOperation(progressrect, NSCompositingOperation.CompositeColor)
    }
}

所以在App Delegate方法中我需要做的例如:

progressrect.size.width = 100

但当然我目前无法访问“progressrect”NSRect对象。

编辑: Re:存储属性的答案如下。文档似乎建议我应该已经可以访问app委托中的变量,如:

var test = CustomUrlTextField()
var theRectTest = test.progressrect.size.width = 100

这是对的吗?它似乎并不适合我。