Archive for the ‘NSWorkspace’ Category

あるパスのファイルをFinderで表示させる方法

NSWorkspaceのselectFile:(NSString *)fullPath inFileViewerRootedAtPath:(NSString *)rootFullPathを使用する

fullPathには、開いた状態で選択したいファイルのパスを記述。
rootFullPathはルートからのフルパス。
#同じではないのか。。。とおもってしまいました。

いまいちよくわからなかったので、
とりあえず、やってみた。

今回は、Finderに特定のフォルダの中身を表示することを目標の動作とする。
#開くパスは、「/AAA/BBB/CCC/」。CCCの中身をFinderで表示するということ。

fullPath=/AAA/BBB/CCC/とし、
rootFullPath=空文字とした。

結果。
フォルダ「CCC」が選択された状態で、Finderで表示。
何度も言うが、目的の動作は、CCCの中身が見えること。
CCCが選択されている状態ではない。

次に、
fullPath=nilとし
rootFullPath=/AAA/BBB/CCC/とした。

結果。
CCCのフォルダの中身がFinderで表示することができた。
目的の動作を実現できた。

今回は、任意ファイル(フォルダ含む)のアイコンを取得する方法。

NSWorkspaseのメソッドを使用することで簡単に取得することができる。

  1. NSImage * img = [ [ NSWorkspace sharedWorkspace ] iconForFile:@"/a.txt"];

CDやDVDのマウントしたボリュームのタイミングをとる通知について

NSWorkspaceのNSWorkspaceDidMountNotificationを使う。

使い方は、以下の通り。

  1.  
  2. //notification Centerへ登録
  3. NSNotificationCenter * nCenter = [ [ NSWorkspace sharedWorkspace ] notificationCenter ];
  4. [ nCenter addObserver ~ ];
  5.  

//selectorで設定したメソッドでボリュームをマウントしたときにメソッドが動くよ。