walmart usar precio marcas hershey entre diferencia componentes como chocolate bebida cocoa

usar - componentes de la cocoa



¿Cómo implemento un cuadro de mensaje en una aplicación Cocoa? (2)

He implementado la funcionalidad de eliminación en la aplicación Cocoa ahora quiero mostrar un cuadro de mensaje cuando el usuario haga clic en el botón Eliminar


Ha pasado mucho tiempo desde la respuesta aceptada y las cosas han cambiado:

  • Swift es cada vez más popular.
  • beginSheetModalForWindow(_:modalDelegate:didEndSelector:contextInfo:) está en desuso, deberíamos usar beginSheetModalForWindow:completionHandler: lugar.

El último ejemplo de código en Swift:

func messageBox() { let alert = NSAlert() alert.messageText = "Do you want to save the changes you made in the document?" alert.informativeText = "Your changes will be lost if you don''t save them." alert.addButtonWithTitle("Save") alert.addButtonWithTitle("Cancel") alert.addButtonWithTitle("Don''t Save") alert.beginSheetModalForWindow(window, completionHandler: savingHandler) } func savingHandler(response: NSModalResponse) { switch(response) { case NSAlertFirstButtonReturn: println("Save") case NSAlertSecondButtonReturn: println("Cancel") case NSAlertThirdButtonReturn: println("Don''t Save") default: break } }

En caso de que desee una versión síncrona:

func messageBox() { let alert = NSAlert() alert.messageText = "Do you want to save the changes you made in the document?" alert.informativeText = "Your changes will be lost if you don''t save them." alert.addButtonWithTitle("Save") alert.addButtonWithTitle("Cancel") alert.addButtonWithTitle("Don''t Save") let result = alert.runModal() switch(result) { case NSAlertFirstButtonReturn: println("Save") case NSAlertSecondButtonReturn: println("Cancel") case NSAlertThirdButtonReturn: println("Don''t Save") default: break } }


Eche un vistazo a NSAlert , que tiene un método síncrono -runModal :

NSAlert *alert = [[[NSAlert alloc] init] autorelease]; [alert setMessageText:@"Hi there."]; [alert runModal];

Como menciona Peter, una mejor alternativa es usar la alerta como una hoja modal en la ventana, por ejemplo:

[alert beginSheetModalForWindow:window modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:nil];

Los botones se pueden agregar a través de -addButtonWithTitle: :

[a addButtonWithTitle:@"First"]; [a addButtonWithTitle:@"Second"];

El código de retorno le dice qué botón fue presionado:

- (void) alertDidEnd:(NSAlert *)a returnCode:(NSInteger)rc contextInfo:(void *)ci { switch(rc) { case NSAlertFirstButtonReturn: // "First" pressed break; case NSAlertSecondButtonReturn: // "Second" pressed break; // ... } }