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

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

在 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运行。它负责生成您将在或中找到的崩溃报告。launchdcom.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情况下的后备方法。)_CROpenProblemReportCrashReporterSupport

猜猜是什么在继续运行?/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 方式:

  1. Command+Space 开始热点搜索
  2. 搜索 /System/Library/CoreServices/Problem Reporter.app 并等待结果出现
    (仅搜索Problem Reporter.app 不会显示结果!)
    在此处输入图片描述
  3. Enter
  4. 现在,“问题报告器”窗口位于最前面,并且具有焦点

终端方式:

  1. 打开“终端”窗口或选项卡
  2. 跑步open -a /System/Library/CoreServices/Problem\ Reporter.app
  3. 现在,“问题报告器”窗口位于最前面,并且具有焦点

相关内容