Pregunta

CFUserNotificationDisplayAlert y < a href = "http://developer.apple.com/mac/library/documentation/CoreFoundation/Reference/CFUserNotificationRef/Reference/reference.html" rel = "nofollow noreferrer"> CFUserNotificationDisplayNotice crea un no -modal ventana y esto es malo, ya que podría traer a su interfaz de usuario de la aplicación en un estado muy indeseable si se selecciona la ventana de la aplicación original (el cuadro de mensaje está oculto, pero el applicaton no responde).

El viejo SystemAlert era modal pero éste no es totalmente compatible cadenas Unicode.

¿Cómo puedo mostrar un cuadro de mensaje como una ventana modal en Mac? Estoy en busca algo similar al cuadro de mensaje desde Windows?

¿Fue útil?

Solución 2

Parece que CreateStandardAlert es la solución correcta, porque éste es modal .


DialogRef theItem;
DialogItemIndex itemIndex;
CreateStandardAlert(kAlertNoteAlert, CFSTR("aaa"), CFSTR("bbb"), NULL, &theItem);
RunStandardAlert(theItem, NULL, &itemIndex);

Otros consejos

He implementado con CFUserNotificationDisplayAlert y no vuelve hasta que el usuario cierra el cuadro de mensaje.

Si quieres echar un vistazo del Código, lo tengo en la función de mensaje en Mac allí encontrará una función de mensaje implementado para Mac, que sólo ha implementado para MB_OKCANCEL, pero con poco más de código podría cubrir la totalidad de las banderas MessageBox y valores de retorno, es un buen punto de partida.

Tener un vistazo a la función o al NSBeginAlertSheet NSApp de:

- (void)beginSheet:(NSWindow *)sheet modalForWindow:(NSWindow *)docWindow
      modalDelegate:(id)modalDelegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo

puede ser su lo que quiere. Aquí también es un buen artículo sobre el trabajo con hojas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top