2014-11-26 20 views
5

Jest prawdopodobnie absurdalnie proste rozwiązanie tego problemu (jestem prawie zawstydzony pytaniem).Jak wyśrodkować NSTextField po ustawieniu jego wartości ciągu znaków

Odpowiedni fragment kodu z mojego widoku kontrolera:

@IBOutlet weak var textLabel: NSTextField! 

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

przed naciśnięciem przycisku "Get Time", "Press Przycisk" etykieta jest wyśrodkowany:

enter image description here

Po naciśnięciu przycisku etykieta zostanie przypisana do lewej:

enter image description here

Label atrybuty:

enter image description here

mam ustawić ograniczenia etykiety, ale ogranicza wydają się „reset”, gdy wartość ciągu jest ustawiony.

Jak ustawić etykietę na środku po ustawieniu wartości ciągu?

Próbowałem również dodać to do mojego kontrolera, ale bezskutecznie:

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

W celu debugowania włącz 'Rysuje tło', aby upewnić się, że coś zabawnego nie dzieje się z pozycją etykiety. – vacawama

+0

Czy po ustawieniu wyrównania może być konieczne ustawienie 'textLabel.needsDisplay = true'? –

Odpowiedz

6

Spróbuj tego:

textLabel.alignment = NSTextAlignment.Center

użyłem tego i to działało.