У меня есть текстовая метка (NSTextField). Я хочу, чтобы он привязывался к верхней левой вершине каждого объекта, чтобы показать номер элемента в пользовательском интерфейсе. Но мой ярлык показывает только ZERO и не перемещается (он остается в верхнем левом углу). Что я сделал не так?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] }
туАггау содержит cgpoints.
Я правильно вставляю параметры метки внутри applicationDidFinishLaunching способ?
Я пробовал. Это не работает. –
dispatch_async (dispatch_get_main_queue(), { self.label.stringValue = "\ (self.localArray.count/4)" }) –
я обновить мой ответ –