私のアプリケーションは、これらのフレームワークにリンクしています:
Cocoa.Framework
AppKit.Framework
CoreData.Framework
Foundation.Framework
OpenGL.Framework はリンクされていないことに注意してください。ただし、DYLD_PRINT_LIBRARIES=1 を設定した後、次のことに注意してください。
...
dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/ OpenGL
dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...
dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...
dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...
dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...
dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...
...
[cocoa-dev list][1] に記載されているように、OpenGL フレームワークにより、新しい MacBook Pro で NVidia グラフィックス カードの電源がオンになるため、これは大きな問題です。
予想どおり、アプリケーションによって NVidia カードの電源が入ります。さらに悪いことに、ウィンドウが閉じられたときにフレームワークがアンロードされません。
私が持っている唯一の非標準のグラフィック要素は、いくつかのカスタム NSBezierPath 描画と影です。
基本的に、アプリが起動すると、ウィンドウが表示されるまで統合グラフィックスが使用され、その後、個別のグラフィックスの電源がオンになり、ウィンドウの状態に関係なくオンのままになります。
答え
NSBezierPaths またはクリアな背景を持つ NSView の場合は、必ず [myView setWantsLayer:NO] を設定してください。