2014-11-26 20 views
5

Probabilmente c'è una soluzione ridicolmente semplice a questo (sono quasi imbarazzato nel chiedere).Come allineare al centro NSTextField dopo aver impostato il suo valore di stringa

relativo codice frammento dal mio controller della vista:

@IBOutlet weak var textLabel: NSTextField! 

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

Prima di premere il tasto "Get Time", l'etichetta "Premere il tasto" è centrato:

enter image description here

Dopo aver premuto il tasto , l'etichetta viene lasciata a sinistra:

enter image description here

attribuisce

Etichetta:

enter image description here

ho impostato i vincoli etichette, ma i vincoli sembrano avere "reset" quando il valore della stringa è impostato.

Come è possibile mantenere l'etichetta centrata dopo aver impostato il valore di stringa?

Ho anche cercato di aggiungere questo al mio controllo, ma senza alcun risultato:

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

Per scopi di debug, attivare 'Disegna sfondo' solo per assicurarsi che qualcosa di divertente non stia accadendo con la posizione dell'etichetta. – vacawama

+0

Forse hai bisogno di impostare 'textLabel.needsDisplay = true' dopo aver impostato l'allineamento? –

risposta

6

Prova questa:

textLabel.alignment = NSTextAlignment.Center

ho usato questo e ha funzionato.