Tôi đã thực hiện chức năng xóa trong ứng dụng ca cao bây giờ tôi muốn hiển thị một hộp thông báo khi người dùng nhấp vào nút xóa.Làm cách nào để triển khai hộp thư trong ứng dụng Cocoa?
18
A
Trả lời
41
Hãy xem NSAlert
, trong đó có một -runModal
phương pháp đồng bộ:
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert setMessageText:@"Hi there."];
[alert runModal];
Như Peter nhắc đến, một sự thay thế tốt hơn là sử dụng các cảnh báo as a modal sheet trên cửa sổ, ví dụ:
[alert beginSheetModalForWindow:window
modalDelegate:self
didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
contextInfo:nil];
Bạn có thể thêm các nút qua -addButtonWithTitle:
:
[a addButtonWithTitle:@"First"];
[a addButtonWithTitle:@"Second"];
Mã trả lại cho bạn nút được nhấn:
- (void) alertDidEnd:(NSAlert *)a returnCode:(NSInteger)rc contextInfo:(void *)ci {
switch(rc) {
case NSAlertFirstButtonReturn:
// "First" pressed
break;
case NSAlertSecondButtonReturn:
// "Second" pressed
break;
// ...
}
}
6
thời gian dài đã trôi qua kể từ câu trả lời chấp nhận và mọi thứ đã thay đổi:
- Swift ngày càng trở nên phổ biến hơn.
beginSheetModalForWindow(_:modalDelegate:didEndSelector:contextInfo:)
không được dùng nữa, chúng tôi nên sử dụngbeginSheetModalForWindow:completionHandler:
thay thế.
mẫu mã mới nhất trong 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
}
}
Trong trường hợp bạn muốn có một phiên bản đồng bộ:
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
Bạn đã lưu ngày của tôi! – cmcromance
Các vấn đề liên quan
- 1. Làm cách nào để triển khai nhập phím tắt trong ứng dụng Mac Cocoa?
- 2. Làm cách nào để triển khai hộp kiểm "Chọn tất cả" trong ứng dụng ASP.NET MVC?
- 3. Làm cách nào để triển khai ứng dụng php
- 4. Làm cách nào để triển khai ứng dụng ASP.NET MVC3?
- 5. Làm thế nào để triển khai các ứng dụng VB6?
- 6. Làm cách nào để kiểm tra cách khách hàng sử dụng ứng dụng Cocoa của tôi?
- 7. Cách triển khai plugin Adobe Photoshop dựa trên Cocoa
- 8. Làm cách nào để triển khai ứng dụng của tôi bằng Qt-Creator?
- 9. Triển khai MVVM cho ứng dụng WinForm
- 10. Tôi làm cách nào để triển khai Cấp phép Google Play cho ứng dụng Android?
- 11. Triển khai ứng dụng Perl
- 12. Làm cách nào để triển khai ứng dụng .NET của tôi lên Amazon EC2?
- 13. Làm cách nào để triển khai nhiều ứng dụng web ngang hàng từ cha mẹ pom
- 14. Làm cách nào để triển khai OpenID trong ứng dụng web của tôi?
- 15. Làm cách nào để triển khai chức năng awt.CardLayout trong ứng dụng javaFX 2.0 của tôi?
- 16. Làm cách nào để triển khai i18n trong ứng dụng GWT?
- 17. Làm cách nào để tôi có thể triển khai Modularization trong ứng dụng Rails?
- 18. Làm cách nào để triển khai và giao tiếp thông qua websockets trong ứng dụng iOS?
- 19. Làm cách nào để triển khai REST trong ứng dụng web?
- 20. Làm cách nào để triển khai hoàn tác trong ứng dụng vẽ OpenGL ES trên iPhone?
- 21. Làm cách nào để triển khai hoạt ảnh tải khi điều hướng trong ứng dụng iPhone?
- 22. Làm cách nào để triển khai "khóa bi quan" trong ứng dụng asp.net?
- 23. Triển khai ứng dụng CakePHP
- 24. Làm cách nào để triển khai tệp bằng ứng dụng nhấp chuột?
- 25. Làm cách nào để triển khai gọi lại trong C++?
- 26. Tôi làm cách nào để yêu cầu ứng dụng Cocoa của tôi thoát khỏi ứng dụng?
- 27. Làm cách nào để triển khai ứng dụng Play 2.0 trên Debian?
- 28. Làm cách nào để thêm NSView vào NSWindow trong ứng dụng Cocoa?
- 29. Làm thế nào để triển khai các ứng dụng PHP của bạn một cách chính xác?
- 30. Triển khai ứng dụng Android
Thậm chí tốt hơn, bắt đầu cảnh báo như một tờ trên cửa sổ có chứa nút delete . Bằng cách này, người dùng có thể tiếp tục sử dụng bất kỳ cửa sổ nào khác trong ứng dụng của bạn. –
Wow làm việc tốt của nó.Nhưng làm thế nào để đặt nhiều nút hơn trong cảnh báo này và làm thế nào để có được rằng các sự kiện nút – mikede
@ mik: Bằng cách sử dụng ['-addButtonWithTitle:'] (http://developer.apple.com/mac/library/ tài liệu/ca cao/khái niệm/Dialog/Task/UsingAlerts.html). Ngoài ra còn có [thông báo đặc biệt] (http://developer.apple.com/mac/library/documentation/cocoa/conceptual/Dialog/Tasks/UsingAlerts.html) trong tài liệu sẽ giúp bạn. –