无法在dmg应用程序的safari中看到NSAlert对话框

时间:2018-06-07 08:15:51

标签: python macos cocoa safari nsalert

我正在尝试在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()

0 个答案:

没有答案