OSX/Cocoa の最新の利点を利用したい場合、Objective-C の一部は避けられません。既存のアプリケーションを MacOS に移植する最も簡単な方法は次のとおりです。
- Objective-C で「最低限の」ニブレス アプリケーションを作成します。単一の AppDelegate クラスと、main() 関数での小さなセットアップのみです。
- AppDelegate の didFinishLaunching イベント ハンドラーで作成したカスタム NSGLView 子孫をウィンドウに追加します。
- NSGLView の初期化で CVDisplayLink とレンダリング コールバックをセットアップする
- CVDisplayLink のコールバックで既存の OpenGL レンダリング コードを使用する
ここで興味深いのは、これらすべてをどこで入手できるかということです。
驚くべきことに、優れた nibless アプリケーション サンプルは、OSX の QEMU ポート (はい、エミュレーター) の UI です。また、Apple の公式 GLEssenstialPractices デモでは、OpenGL レンダリング パイプラインを設定するために必要なすべての情報が示されています。残りはすべてあなた次第です。
システム レベルの OSX プログラミングの詳細で最新の紹介は、Mark Dalrymple による「高度な Mac OS X プログラミング」の本に記載されています。これは多くのことを説明しており、これをすべて読んだ後、OS の設計上の決定のほとんどを理解しました (パフォーマンスの観点から考えると、すべての「非標準」のものを実際に受け入れるようになります)。
「nibless」プログラミングを完了するには、次のようなブログ投稿を読むことをお勧めしますhttp://blog.kleymeyer.com/2008/05/creating-cocoa-applications-programatically-ie-nib-less/検索は大いに役立ちます。
同じトリックが CocoaTouch/iOS にも当てはまり、SO では多くの質問に答えています。たとえば、このCocoa touch/Xcode のように、NIB を使用しないグラフィックス コンテキストの生成です。