在 OS X 中,当应用程序崩溃时,会出现一个带有错误报告的窗口。默认情况下,该窗口无法通过 Command+Tab 访问,也不会出现在 Dock 中。当然,如果因错误或故意点击了其他窗口,错误报告将转到后台并隐藏在其他窗口后面。
这真的很烦人,因为为了看到它,我必须使用 Exposé 并扫描 20 多个窗口才能找到它。(并不是说我不再喜欢 Exposé,因为 Snow Leopard 让所有窗口大小都变得令人困惑地相等。)
关于如何使错误报告 Command+Tabbable 有什么想法吗?
答案1
有趣的问题。简短回答:
sudo defaults write "/System/Library/CoreServices/Problem Reporter.app/Contents/Info" LSUIElement -bool false
这样问题报告器下次运行时就会出现在 Dock 中。
我如何得出答案:当发生崩溃时,根据中的一个文件/System/Library/CoreServices/ReportCrash
运行。它负责生成您将在或中找到的崩溃报告。launchd
com.apple.ReportCrash*.plist
/System/Library/Launch{Daemons,Agents}/
[~]/Library/Logs/CrashReporter/
[~]/Library/Logs/DiagnosticReports
看起来 ReportCrash 可能能够启动一个类似于“APP 问题报告”对话框的对话框显示 - 它包含字符串“/System/Library/PrivateFrameworks/CrashReporterSupport.framework”,其中包含用于本地化对话框窗口中显示的文本的资源。它还包含对 API 的调用CFUserNotification
。但 ReportCrash 进程会在一段时间后退出,而对话框会继续显示。(这种方法很可能是在私有框架打开您看到的应用程序失败的CFUserNotification
情况下的后备方法。)_CROpenProblemReport
CrashReporterSupport
猜猜是什么在继续运行?/System/Library/CoreServices/Problem\ Reporter.app
。如果您open
打开此文件,问题报告对话框就会出现在最前面。您无法在 Dock 或 Cmd-Tab 列表中看到此对话框的原因是其 Info.plist 文件包含条目LSUIElement = 1
。
我敢打赌,您可以通过LSUIElement
将<false/>
中的值更改为 来在 Dock 中看到它,并通过 Cmd-Tab 找到它/System/Library/CoreServices/Problem\ Reporter.app/Contents/Info.plist
。
答案2
根据第一个答案我发现 High Sierra 上的这些步骤带来了现有的问题报告者到前面。
GUI 方式:
- 按
Command
+Space
开始热点搜索 - 搜索
/System/Library/CoreServices/Problem Reporter.app
并等待结果出现
(仅搜索Problem Reporter.app
不会显示结果!)
- 按
Enter
- 现在,“问题报告器”窗口位于最前面,并且具有焦点
终端方式:
- 打开“终端”窗口或选项卡
- 跑步
open -a /System/Library/CoreServices/Problem\ Reporter.app
- 现在,“问题报告器”窗口位于最前面,并且具有焦点