我正在尝试在Mac OSX 10.12中运行警报对话框。 DMG App与python 3.4.4捆绑在一起。 无法通过日志获取弹出警报对话框似乎直到runModal()都没有返回任何内容。
在Safari-> Prefrences->安全性中启用启用Javascript并禁用阻止弹出窗口。
虽然alertdialog的独立代码工作正常,但有关为什么它会被safari阻止的任何指示。
def trusted_dialog(self, msg, title):
from AppKit import NSAlertFirstButtonReturn
try:
title_buttons = [_("OK"), _("Cancel")]
reply = self.displayAlert(msg, "", title_buttons)
if reply == NSAlertFirstButtonReturn:
return True
else:
get_logger().warning("User has NOT trusted the origin")
except Exception as e:
get_logger().debug("MessageBoxEx exception in MacOSX: {}".format(e))
def displayAlert(self, text, title, title_buttons):
from AppKit import NSAlert, NSInformationalAlertStyle, NSApp
alert = NSAlert.alloc().init()
alert.setMessageText_(text)
alert.setInformativeText_(title)
alert.setAlertStyle_(NSInformationalAlertStyle)
for button in title_buttons:
alert.addButtonWithTitle_(button)
NSApp.activateIgnoringOtherApps_(True)
return alert.runModal()