NSProgressIndicator no NSMenuItem não é atualizado na segunda exibição

eu tenho umaNSMenu anexado a umNSStatusItem (um aplicativo da barra de menus). Ao baixar um arquivo, quero exibir um NSProgressIndicator em um item deste menu. Eu criei umNSViewController subclasse para este indicador de progresso com as seguintes propriedades:

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

Quando necessário, inicio o download do arquivo com o seguinte código, executado emNSRunLoopCommonModes para que os métodos delegados também sejam chamados quando oNSMenu é exibido (que é executado emNSEventTrackingRunLoopMode):

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

NodidReceiveData delegar método, em seguida, defino as propriedades no meuNSViewController subclasse:

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

Isso funciona muito bem se eu vincular as propriedades a um rótulo, mas oNSProgressIndicator só atualiza se eu abrir o menuantes a conexão é iniciada e não a feche novamente até o download terminar. Mas se eu abrir depois, o indicador de progresso não será atualizado. Ele mostra o valor que as propriedades tinham no momento em que abri o menu, mas esse valor não é atualizado. O indicador de progresso também não é animado. Observe que os rótulosFaz trabalhos...

Eu tentei ligar manualmentesetNeedsDisplay comYES e ligardisplay om na exibição personalizada e no indicador de progresso quando altero os valores, mas isso não funciona. A única coisa que corrige o indicador de progresso é chamar[progress setHidden:YES]; [progress setHidden:NO]; em rápida sucessão, mas isso faz com que o indicador de progresso pisque e é, obviamente, uma solução ruim.

O que estou fazendo errado? Como posso consertar issoNSProgressIndicator?

questionAnswers(1)

yourAnswerToTheQuestion