将 OS X 错误消息窗口置于最前面

Deb*_*ski 5 window macos

在 OS X 中,当应用程序崩溃时,会出现一个带有错误报告的窗口。该窗口默认无法通过 Command+Tab 访问,也不会出现在 Dock 中。当然,如果错误或故意点击另一个窗口,错误报告将转到后台并隐藏在其他窗口后面。

这真的很烦人,因为为了看到它,我必须使用 Exposé 并扫描 20 多个 Windows 才能找到它。(并不是说我不再喜欢 Exposé,因为 Snow Leopard 使窗口大小都变得令人困惑。)

关于如何使错误报告 Command+Tabbable 的任何想法?

小智 3

有趣的问题。简短回答:

\n\n
\n

sudo defaults write "/System/Library/CoreServices/Problem Reporter.app/Contents/Info" LSUIElement -bool false

\n
\n\n

这应该会导致问题报告器在下次运行时出现在 Dock 中。

\n\n

我是如何得出答案的:当发生崩溃时,/System/Library/CoreServices/ReportCrash根据. 它负责生成您将在或中找到的崩溃报告。launchdcom.apple.ReportCrash*.plist/System/Library/Launch{Daemons,Agents}/[~]/Library/Logs/CrashReporter/[~]/Library/Logs/DiagnosticReports

\n\n

看起来 ReportCrash 可能能够启动显示一个类似于“APP 问题报告”对话框 \xe2\x80\x93 的对话框,它包含字符串“/System/Library/PrivateFrameworks/CrashReporterSupport.framework”,其中包含用于本地化对话框窗口中显示的文本的资源。它还包含对CFUserNotificationAPI 的调用。但 ReportCrash 进程会在一段时间后退出,而对话框继续显示。(该CFUserNotification方法很可能是万一失败的后备方案_CROpenProblemReport,它让CrashReporterSupport私有框架打开您所看到的应用程序失败。)

\n\n

猜猜是什么继续运行?/System/Library/CoreServices/Problem\\ Reporter.app。如果您输入open此文件,问题报告对话框就会出现。您在 Dock 或 Cmd-Tab 列表中看不到此内容的原因是其 Info.plist 文件包含条目LSUIElement = 1

\n\n

LSUIElement我打赌你可以做到这一点,这样你就可以通过将的值更改为 in 来在 Dock 和 Cmd-Tab 中看到<false/>/System/Library/CoreServices/Problem\\ Reporter.app/Contents/Info.plist

\n