Ich habe Löschfunktionalität in der Kakao-Anwendung implementiert, jetzt möchte ich ein Meldungsfeld anzeigen, wenn Benutzer auf Löschen klicken.Wie implementiere ich ein Meldungsfeld in einer Cocoa-Anwendung?
18
A
Antwort
41
Werfen Sie einen Blick auf NSAlert
, die eine synchrone -runModal
Methode hat:
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert setMessageText:@"Hi there."];
[alert runModal];
Wie Peter erwähnt, eine bessere Alternative ist die Warnung as a modal sheet auf dem Fenster zu verwenden, zB:
[alert beginSheetModalForWindow:window
modalDelegate:self
didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
contextInfo:nil];
Tasten können über -addButtonWithTitle:
:
[a addButtonWithTitle:@"First"];
[a addButtonWithTitle:@"Second"];
hinzugefügt werden 210
Der Rückgabecode zeigt Ihnen, welche Taste gedrückt wurde:
- (void) alertDidEnd:(NSAlert *)a returnCode:(NSInteger)rc contextInfo:(void *)ci {
switch(rc) {
case NSAlertFirstButtonReturn:
// "First" pressed
break;
case NSAlertSecondButtonReturn:
// "Second" pressed
break;
// ...
}
}
6
Lange Zeit hat sich seit der akzeptierte Antwort vergangen und die Dinge geändert haben:
- Swift wird mehr und mehr populär.
beginSheetModalForWindow(_:modalDelegate:didEndSelector:contextInfo:)
ist veraltet, sollten wir stattdessenbeginSheetModalForWindow:completionHandler:
verwenden.
Neueste Codebeispiel in 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
}
}
Falls Sie eine synchrone Version:
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
}
}
+0
Du hast meinen Tag gerettet! – cmcromance
Verwandte Themen
- 1. Wie erstelle ich ein Meldungsfeld mit tkinter?
- 2. Wie implementiere ich Suchfunktionalität in einer Website?
- 3. Wie implementiere ich ein Voting-System?
- 4. Wie implementiere ich jquery.sound.js?
- 5. Wie implementiere ich ein abbrechbares Ereignis?
- 6. Wie implementiere ich ein dateibasiertes Wörterbuch?
- 7. Wie implementiere ich IEnumerable?
- 8. Wie implementiere ich `prepareForReuse`?
- 9. Wie implementiere ich JDatePicker
- 10. Wie implementiere ich IValidatableObject?
- 11. Kann ich einen Link in ein Meldungsfeld in Javascript integrieren?
- 12. Wie unterdrückt man ein Meldungsfeld beim Komponententest?
- 13. Wie implementiere ich OpenID in meiner Webanwendung?
- 14. Wie kann ich ein Meldungsfeld mit zwei Schaltflächen anzeigen?
- 15. Wie implementiere ich Request-Throttling in einer Java EE-Umgebung?
- 16. Wie implementiere ich ein Bit-Array in C/Objective C
- 17. Wie implementiere ich ein gutes Spielmenü in Java?
- 18. Wie implementiere ich ein Floating Window in meinem Navigator Controller?
- 19. Wie implementiere ich Zip-Funktionalität in VBA?
- 20. Wie implementiere ich Versandtabellen in Perl?
- 21. Wie implementiere ich den Kontrollsystemblock einer Transferfunktion in C++?
- 22. Wie implementiere ich Graphen und Graphalgorithmen in einer funktionalen Programmiersprache?
- 23. Wie implementiere ich Zugriffsspezifizierer in C?
- 24. Wie implementiere ich isChecked in Protractor
- 25. Wie implementiere ich Gravatar in Laravel?
- 26. Wie implementiere ich AVAssetImageGenerator.copyCGImageAtTime in schnellen
- 27. Wie implementiere ich Brotli-Komprimierung in Apache?
- 28. Wie implementiere ich Kafka Consumer in Scala?
- 29. Wie implementiere ich bedingtes CSS?
- 30. Wie implementiere ich virtuelle Methoden in Implementierungsdateien?
Noch besser, beginnen die Warnung als ein Blatt auf dem sich öffnenden Fenster auf die Schaltfläche Löschen enthält . Auf diese Weise kann der Benutzer weiterhin beliebige andere Fenster in Ihrer Anwendung verwenden. –
Wow, es funktioniert gut.Aber wie man mehr Tasten in diesem Alarm und wie man diese Tasten Ereignisse – mikede
@mik: Mit Hilfe von ['-addButtonWithTitle:'] (http://developer.apple.com/mac/library/ Dokumentation/Kakao/Konzept/Dialog/Aufgaben/UsingAlerts.html). In den Dokumenten, die Ihnen helfen sollten, gibt es auch ein [special on alerts] (http://developer.apple.com/mac/library/documentation/cocoa/conceptual/Dialog/Tasks/UsingAlerts.html). –