2011-07-25 13 views
1

ウィンドウの中央に大きなNSViewを持つアプリケーションがあります。そのビュー内で、そのNSViewに限定された "Calculator.app"を起動して表示し、Calculator.appのウィンドウサイズを強制しますこのNSViewのサイズになるようにします。これは可能ですか?どうしますか?OS X上の既存のNSView内で新しいアプリケーションを開く方法は?

(TextEdit.appなどのために同じ質問は、私は一般的なケースのためにこれをしたいが、単に説明として、これらのアプリケーションを使用して)

答えて

2

これは不可能です。アプリケーションを起動すると、そのディスプレイの使用を制限する方法はありません。アプリケーションはウィンドウを作成し、ウィンドウはビューの内部には入りません。

(まあ、実行不可能または不可能ばかげなくあなたは、そのビュー内のVMを実行する、またはアプリケーションをロードし、ココアライブラリの使用を傍受することができます。これらは、合理的な選択肢ではありません。)

ただし、これを行うために特にアプリケーションを作成する場合は、その表示を別のアプリケーションのビューに埋め込むさまざまな方法があります。

+0

ただし、発言のためにポインタを提供できますか?私はどのように勉強するのが幸せだろう... – SteAp

+0

私はそれを行う方法はIPCです。 'shm_open'(そして' ftruncate'、 'mmap')を使うと、共有メモリの領域を作ることができます。クライアントアプリケーションはピクセルを共有メモリに書き込み、サーバーアプリケーションはそれらのピクセルをディスプレイに送信します。厳密には必要ではありませんが、2つのプロセスを同期させる方法が必要です。 Cocoaウィジェットをメモリの任意の領域に描画し、イベントをシリアライズしてプロセスの境界を越えて送信することもできますが、多くのコードになります。 –

関連する問題