Ventana de cambio de tamaño de NSAlert

Tengo varios diálogos de NSAlert con diferentes textos. Quiero ajustar el ancho de la ventana de alerta al texto, para que el texto no se ajuste. Por lo tanto, uso este código para calcular el ancho de la cadena:

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

Entonces trato de ajustar la ventana de la alerta:

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];

Este código funciona, pero solo por primera vez, llamo al método con este código. Si tomo otra cadena y vuelvo a llamar al método, la ventana no cambiará de tamaño (aunque el ancho calculado se diferenciará).

Cualquier idea, ¿cómo puedo cambiar el tamaño de la ventana NSAlert?

Respuestas a la pregunta(1)

Su respuesta a la pregunta