NSProgressIndicator en NSMenuItem no se actualiza en la segunda pantalla

tengo unNSMenu adjunto a unNSStatusItem (una aplicación de barra de menú). Al descargar un archivo, quiero mostrar un NSProgressIndicator en un elemento de este menú. He creado unNSViewController subclase para este indicador de progreso con las siguientes propiedades:

@property NSUInteger current; // Bound to NSProgressIndicator value
@property NSString *status;   // Bound to a NSTextField value
@property NSUInteger total;   // Bound to NSProgressIndicator max value

Cuando sea necesario, comienzo la descarga del archivo con el siguiente código, que se ejecuta enNSRunLoopCommonModes para que también se invoquen los métodos delegados cuandoNSMenu se muestra (que se ejecuta enNSEventTrackingRunLoopMode):

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
[connection start];

En eldidReceiveData delegar método luego establezco las propiedades en miNSViewController subclase:

progressViewController.current = receivedData.length;
progressViewController.status = @"Downloading...";
progressViewController.total = expectedBytes;

Esto funciona muy bien si enlazo las propiedades a una etiqueta, pero elNSProgressIndicator solo se actualiza si abro el menúantes de la conexión se inicia y no la vuelva a cerrar hasta que finalice la descarga. Pero si lo abro después, el indicador de progreso no se actualiza. Muestra el valor que tenían las propiedades en el momento en que abrí el menú, pero este valor no se actualiza. El indicador de progreso tampoco está animado. Tenga en cuenta que las etiquetashacer trabajo...

Traté de llamar manualmentesetNeedsDisplay conYES y llamadisplay om tanto en la vista personalizada como en el indicador de progreso cuando cambio los valores, pero eso no funciona. Lo único que soluciona el indicador de progreso es llamar[progress setHidden:YES]; [progress setHidden:NO]; en rápida sucesión, pero eso hace que el indicador de progreso parpadee y, por supuesto, es una mala solución.

¿Qué estoy haciendo mal? Cómo puedo arreglar estoNSProgressIndicator?

Respuestas a la pregunta(1)

Su respuesta a la pregunta