OS X Lionに、自動終了したくない特定のアプリケーションの自動終了を無効にするよう指示する方法はありますか?
FYI ライオンは、特定のアプリケーションで使用したくない場合はどうすればよいかわからない場合は非常に便利です。
Lionは、リソースが必要であると判断した場合、およびそれらを使用しているように見えない場合、実行中のアプリケーションを終了します。アプリケーションが「使用中」かどうかを判断するためのヒューリスティックは非常に保守的です。アクティブなアプリケーションであってはならず、可視化された最小化されたウィンドウがあってはなりません。
たとえば、TextEditウィンドウが開いていない状態で別のアプリケーションに切り替えたときに、TextEditが自動的に終了しないようにします。
自動終了のMac App Programming Guideセクションを見て、Noの値を持つNSSupportsAutomaticTerminationキーをTextEditのInfo.plistファイルに追加してみようと思いました。(動作しませんでした:TextEditを開くとクラッシュします。)
注目すべきは、ファイルにNSSupportsAutomaticTerminationキーが含まれていないことです(つまり、AppleはNSProcessInfoを使用して自動終了を有効にしていることを意味します)。(NSSupportsAutomaticTerminationキーと値Noを含む変更されたInfo.plistでTextEditに自己署名することにより、これが機能しないことを確認しました)。
注意すべき副作用の1つは、Info.plistファイルの内容を変更すると、開くときにTextEditがクラッシュすることです。原因はクラッシュログから「コード署名が無効です」と記録されています。つまり、TextEditアプリとそのすべてのコンテンツはコード署名されています。回避策はcodesign
、「コード署名タスク」で説明したように、コマンドと自己署名ルート証明書を使用してアプリに自己署名することです。
私がこれまで試した後、TextEditはまだ自動終了に従います。