Estoy tratando de usar un NSProgressIndicator (indeterminado) dentro de un menú de la barra de estado. Estoy usando un objeto NSView como vista para el elemento de menú, y luego subvisualizo el indicador de progreso para mostrarlo. Pero cada vez que trato de llamar a la animación de inicio: para el progreso, no pasa nada. Cuando intento hacer lo mismo en una NSWindow normal, funciona perfectamente, pero no cuando está dentro de un elemento de menú.Usando NSProgressIndicator dentro de un NSMenuItem
Soy nuevo en cocoa y Objective-c, así que podría haber pasado por alto algo "obvio", pero he buscado bastante para una solución, pero sin éxito. Descubrí que los elementos del menú no se pueden actualizar mientras se muestran y que en su lugar debe usar una ventana sin bordes. Pero no he podido confirmar esto en ninguna documentación.
Edit:
Ok, casi funciona ahora. Al usar setUsesThreadedAnimation: y desde el menú de MenuDelegateWillOpen y creando un nuevo hilo. Este hilo se ejecuta un método local:
-(void) doWork(NSProgressIndicator*) p{
[p startAnimation:self];
}
Esto iniciará el ProgressIndicator de forma aleatoria al abrir el menú (?). Si llamo al startAnimation:
directamente sin pasar por doWork:
(sigue usando un nuevo hilo), nunca funciona. ¿No hace setUsesThreadedAnimation:
que la barra de progreso cree su propio hilo para la animación?
¡Muchas gracias por ese consejo, realmente ayuda! – Yojik
¡Loco cuánto tiempo he estado buscando para hacer que esto funcione, muchas gracias! – Jasper
Gracias amigo! Gracias amigo! Gracias amigo! –