我是osx编程的新手。我正在使用pyobjc来创建警报。我对模态窗口或对话框的理解是模态窗口需要用户的操作才能继续。但是,如果我使用NSAlert的runModal,我仍然可以在警报仍然显示时转到其他应用程序。我对模态对话框的理解是不正确的。
class Alert(object):
def __init__(self, messageText):
super(Alert, self).__init__()
self.messageText = messageText
self.informativeText = ""
self.buttons = []
def displayAlert(self):
alert = NSAlert.alloc().init()
alert.setMessageText_(self.messageText)
alert.setInformativeText_(self.informativeText)
# alert.setAlertStyle_(NSInformationalAlertStyle)
alert.setAlertStyle_(NSCriticalAlertStyle)
for button in self.buttons:
alert.addButtonWithTitle_(button)
NSApp.activateIgnoringOtherApps_(True)
self.buttonPressed = alert.runModal()
def alert(message="Default Message", info_text="", buttons=["OK"]):
ap = Alert(message)
ap.informativeText = info_text
ap.buttons = buttons
ap.displayAlert()
return ap.buttonPressed
答案 0 :(得分:2)
如果模态对话框是系统模式对话框,您将无法切换到任何其他应用程序。对于您的应用,它会阻止您在自己的应用程序的用户界面中继续进行任何操作,而不是在其他应用程序中。
如果是代码,则需要创建应用程序模式对话框,如NSAlert文档中所述。