2014-11-26 1 views
5

Es gibt wahrscheinlich eine lächerlich einfache Lösung dafür (es ist mir fast peinlich, danach zu fragen).Wie NSTextField nach dem Setzen seines String-Wertes zentriert werden kann

Relevante Codeausschnitt aus meiner Sicht Controller:

@IBOutlet weak var textLabel: NSTextField! 

@IBAction func getTimeButton(sender: AnyObject) { 
    let currentDate = NSDate() 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.timeStyle = .ShortStyle 
    textLabel.stringValue = dateFormatter.stringFromDate(currentDate) 
} 

Bevor Sie die "Get Time" Taste wird die "Drücken Sie die Taste" Label zentriert:

enter image description here

Nach Drücken der Taste wird das Etikett linksbündig:

enter image description here

Label-Attribute:

enter image description here

ich die Etiketten Einschränkungen festgelegt haben, aber die Zwänge scheinen „Reset“, wenn der String-Wert gesetzt zu bekommen.

Wie kann ich das Label nach dem Setzen des String-Wertes zentriert halten?

Ich habe auch versucht, dies zu meinem Controller hinzuzufügen, aber ohne Erfolg:

let textAlignment = NSTextAlignment.CenterTextAlignment 
textLabel.alignment = textAlignment 
+0

Aktivieren Sie zum Debuggen 'Draws Background', um sicherzustellen, dass mit der Beschriftungsposition nicht etwas Lustiges passiert. – vacawama

+0

Müssen Sie nach dem Festlegen der Ausrichtung möglicherweise 'textLabel.needsDisplay = true' einstellen? –

Antwort

6
diese

Versuchen:

textLabel.alignment = NSTextAlignment.Center

ich verwendet, um dieses und es funktionierte.

Verwandte Themen