他のアプリケーションでファイルを開く
ここでは、起動中のアプリケーションから、他のアプリケーションを呼び出してファイルを開く方法をメモする。
これには、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