2011年2月14日月曜日

Cocoa ObjC タスクスイッチャもどき

起動中のアプリの一覧を、こんなふうに表示してみた。


一応、アイコン+アプリ名の横長版、アイコン+アイコンの下にアプリ名、アイコンのみ、という3つの表示方法を取れるようにしてみた。

書き散らかしの実験用プロジェクトなもので、クラス名がいちいちMyViewだったりCustumViewだったりするので(^^;)、その辺をすこし整理しながら書きなおそうと考えている。現在は

1,コントローラで起動中のアプリを調査して専用のクラスに入れて保持
2,それをもとに「アプリ1つを保持して表示するViewクラス」をインスタンス化
3,さらにそいつを「並べて表示する専用View」にaddSubview

という感じ。いろいろコードを書いては直し、直しては書き、としていると、コントローラはいらないな表示用のViewでデータを保持したほうがいいじゃん、とか、NSRunnnigApplicationクラスが作ってくれる「起動中アプリの一覧」Arrayをそのまま使ったほうがいいんじゃね?とか、アイディアだけは湧いてくるものだ。こうやってのめりこんでいくのが面白いんだなあ。

アプリを保持しているView(ちゃんとクラス名考えないとだめだな(^^;))はマウスのトラッキングとかもできるようにしてみた。xcatsan師匠のコードのカットアンドペーストだけど。


これでアイコンを左クリックすると、そのアプリがアクティブになる。

NSRunningApplication *selectApp=[NSRunningApplication runningApplicationWithProcessIdentifier:[_app _pid]];
 [selectApp activateWithOptions:NSApplicationActivateIgnoringOtherApps]; 
アプリケーションのpidをコピーしてあるので、これだけでアクティブにできる。おもしろー。

0 件のコメント:

コメントを投稿