1
私はテキストラベル(NSTextField)を持っています。 UIの要素の番号を表示するために、すべてのオブジェクトの左上頂点に固定したいと思います。 しかし、私のラベルはゼロのみを表示し、移動しません(左上隅にあります)。私は何を間違えたの?ここでSwift:テキストラベルが更新されない
はAppDelegate.swiftで私のコードです:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
@IBOutlet weak var drawingView: DrawingView!
@IBOutlet weak var label: NSTextField!
var localArray: [CGPoint] = []
func applicationDidFinishLaunching(aNotification: NSNotification) {
label.textColor = NSColor(calibratedRed: 0.15, green: 0, blue: 0.75, alpha: 0.3)
label.font! = NSFont(name: "Arial Bold", size: 60)!
label.backgroundColor = NSColor.clearColor()
label.stringValue = "\(localArray.count/4)"
for (pointIndex, _) in localArray.enumerate() {
let point = CGPoint(x: (localArray[(pointIndex/4)+1].x), y: (localArray[(pointIndex/4)+1].y))
label.sizeToFit()
label.frame = CGRect(origin: point, size: CGSize(width: label.bounds.width, height: label.bounds.height))
}
}
そして、ここではDrawingView.swiftで私のコードです:
var delegate = NSApplication.sharedApplication().delegate as! AppDelegate
delegate.localArray = myArray.map { return $0.coordSequence()[0] }
myarrayのはcgpointsが含まれています。
私はラベルのパラメータを内側に入れていますapplicationDidFinishLaunchingメソッド?
私はそれを試しました。動いていない。 –
dispatch_async(dispatch_get_main_queue()、{ self.label.stringValue = "\(self.localArray.count/4)" }) –
私は** dispatch_async(dispatch_get_main_queue()、{ 自己を置く場合、私は私の答えを更新し –