NSAlert Fenstergröße ändern

Ich habe mehrere NSAlert-Dialoge mit unterschiedlichem Text. Ich möchte die Breite des Warnungsfensters an den Text anpassen, damit der Text nicht umbrochen wird. Deshalb benutze ich diesen Code, um die Breite der Zeichenkette zu berechnen:

NSSize size = [myString sizeWithAttributes:@{NSFontAttributeName: [NSFont systemFontOfSize:[NSFont systemFontSize]]}];

Dann versuche ich das Fenster der Warnung anzupassen:

NSAlert *alert = [NSAlert alertWithMessageText:...
...
NSPanel *panel = alert.window;
NSRect frame = panel.frame;
float x = ((NSTextField*)[[((NSPanel*)(alert.window)).contentView subviews] objectAtIndex:5]).frame.origin.x;    //the x-position of the NSTextField
frame.size.width = size.width + x;
[alert.window setFrame:frame display:YES];

Dieser Code funktioniert, aber nur zum ersten Mal rufe ich die Methode mit diesem Code auf. Wenn ich einen anderen String nehme und die Methode erneut aufrufe, wird die Fenstergröße nicht geändert (obwohl sich die berechnete Breite unterscheidet).

Irgendwelche Ideen, wie ich das NSAlert-Fenster vergrößern oder verkleinern kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage