在MacOSX上抓取openFileEvent(无法获取文件名)

时间:2012-02-10 15:24:39

标签: java macos file-type

我们在Mac上设置了一个Java应用程序,您可以在其中双击我们的自定义扩展程序,它会打开应用程序,然后该应用程序可以对您单击的文件进行操作。问题是我无法获得苹果在OSX中使用的“开放事件”,因此我无法获得文件名(和位置)来完成工作。我尝试了使用谷歌找到的所有东西,所以我必须做一些内在错误的事情。

这是我在应用程序启动时调用的类。我刚刚创建了一个新类,然后在几行之后抓取文件。我还尝试了等待/通知所有人,看看它是否是一个时间问题,但是它会无限期地等待,所以我认为这是我实际捕获事件的方式的问题。任何帮助都是有用的。

import java.io.File;
import java.util.List;

import com.apple.eawt.AppEvent.OpenFilesEvent;
import com.apple.eawt.Application;
import com.apple.eawt.OpenFilesHandler;

public class MacFiles implements OpenFilesHandler{

    private List<File> files;

    public MacFiles() {
        Application.getApplication().setOpenFileHandler(this);
    }

    public List<File> getFiles() {
        return files;
    }

    public void openFiles(OpenFilesEvent event) {
    files = event.getFiles();
    }
}

1 个答案:

答案 0 :(得分:0)

您是否编辑过Info.plist,包括CFBundleDocumentTypesUTExportedTypeDeclarations