2011-06-28 8 views
0

私はMacのTerminal.appが好きな状況ですが、私は分割ビュー、端末セットなどのいくつかの拡張機能を追加したいと思います。別のココアアプリからApplication.appのビューを開始して管理しますか?

基本的に私は端末を再構築しようとしました。 NSTask/PseudoTTYのアプローチで、基本的には動作しますが、気に入っていないTerminal.appのように動作します。ホイールを再発明する必要もありません。

だからウィンドウまたはからBのビューを別のココアアプリケーション()からココアアプリケーション(B)を起動し、管理するための任意のアプローチがありますか?私はManageTerminals.appのように6つの端末を起動し、それらのビューをグリッドに全画面表示します。すべてのインスタンスが完全に動作しているTerminal.appですか?

私はSIMBLを見つけました。基本的にそのようなことができます。少なくともウェブサイトはこう言っています。しかし、マニュアルやマニュアルはありません。

これを達成する方法を知っている人はいますか?私は、アプリケーションを変更したくない、私はちょうど画面上のウィンドウ/ビューのサイズと外観を管理したい。

ありがとうございました!

- EDIT

は、私はほとんど仕事をして、今リンゴScriptingBridgeを試してみました。ショーストップの可能性がある最後の一歩が欠けているだけです。ターミナルヘッダ内terminalWindowからの眺めを取得する方法は存在ませんので、それは私に認識されていないセレクタを与えている。もちろん、

terminal = [SBApplication applicationWithBundleIdentifier:@"com.apple.Terminal"]; 
[terminal activate]; 

if([terminal isRunning]){ 
    TerminalWindow *terminalWindow = [[[terminal windows] get] objectAtIndex:0]; 
    view = (NSView*)[terminalWindow contentView]; 
} 

:今、私は次のよう持っています。しかし、それが可能なら、私はアプリケーションのxインスタンスを作成して、ビューだけを管理する独自のウィンドウに端末のビューを再現することができます。

誰かがこれを達成する方法を知っていますか、それとも完全にカプセル化されていると思いますか?

答えて

0

[[NSWorkspace sharedWorkspace] launchApplication:@"iChat"]でアプリケーションを起動できます。ただし、ビューを管理することはできません。あなたはWindowsフレームのみを変更することができます。 AppleScriptがあなたを助けてくれます。私は以前SIMBLを使ったことがありませんでしたが、[wikiページ] [code.google.com/p/simbl/w/list]

+0

私は、AppleScript/AppleEventsを通してウィンドウにアクセスすることしかできませんでした。あなたは、全体像にreplugにアクセスすることは可能だと思いますか? –

0

のようなオープンソースの端末エミュレータであるiTermをご覧ください。 Mac OS Xでは、必要に応じて変更することも、少なくとも端末エミュレータがCocoaを介してどのように動作するかを確認することもできます。

その他の場合は、Accessibility frameworkを使用して他のアプリのウィンドウの位置を制御できます。ユーザは、「システム環境設定」の「アクセシビリティ」パネルで、「補助デバイスへのアクセスを許可する」プリファレンスを使用して、これを許可する必要があります。

それ以上のことは、もっと複雑になります。 Apple Events/AppleScriptは必要なツールを提供します。私はTerminalがAppleScriptインターフェイスを持っていることを知っていますが、私はそれがどれほど完全であるか分かりません。私は本当にSIMBLの使用をお勧めしません。これにより、別のアプリのメモリ空間にコードを注入することができますが、他のアプリをリバースエンジニアリングする必要があるため、安定性を保証することはできません。

+0

ありがとう@rob、私はすでにiTermを試しましたが、私には少し重いようでした。アクセシビリティフレームワークは素晴らしいですが、私はウィンドウにアクセスするだけではなく、自分で管理できるウィンドウで実際のビューを再現します。それがうまくいくと思いますか? –

関連する問題