真的很难弄清楚如何从应用程序的其他地方以编程方式访问我创建的对象。 到目前为止,我只是在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
这是对的吗?它似乎并不适合我。