他のアプリケーションでファイルを開く

ここでは、起動中のアプリケーションから、他のアプリケーションを呼び出してファイルを開く方法をメモする。

これには、NSWorkspace クラスを使う。まず、NSWorkspace.sharedWorkspace で、NSWorkspace オブジェクトを作る。

workspace = NSWorkspace.sharedWorkspace

これに openFile_withApplication(path,application) で開きたいファイルを指定したアプリケーションで開くメソッドを追加する。path はフルパス。指定したファイルがない場合は、新規書類や新規ウィンドウが開く。絶対パスでホームフォルダを指定する方法があって、それを使ってデスクトップにある text.txt を指定すると、次のようになる。

path = NSHomeDirectory() + "/Desktop/test.txt"

これをテキストエディットで開くには、次のようにする。

workspace.openFile_withApplication(path,"TextEdit")

ただ単にアプリケーション名を指定すると、Application フォルダの中を探すようだ。他を指定する方法はよくわからない。

これを含めてその他にもいくつかあるので、まとめる。

openFile_withApplication(path,application) 指定したファイルを指定したアプリケーションで開く

workspace.openFile_withApplication(path,"TextEdit")

openFile(path) 指定したファイルをデフォルトのアプリケーションで開く

workspace.openFile(path)

openFile_withApplication_andDeactivate(path,application,true/false) 指定したファイルを指定したアプリケーションで開き、最後が true ならファイルを開いたアプリケーションが前面に false なら背面になる(元のアプリケーションが前面に残る)。

workspace.openFile_withApplication_andDeactivate(path,"TextEdit",false)

デスクトップの test.txt というファイルをテキストエディットで開くには、次のようなメソッドを書いてボタンに割り当てる。

def startApplication(sender)

fileToOpen = "#{NSHomeDirectory()}/Desktop/test.txt"

workspace = NSWorkspace.sharedworkspace

workspace.openFile_withApplication(fileToOpen,"TextEdit")

end

ib_action :startApplication