我们在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();
}
}
答案 0 :(得分:0)
您是否编辑过Info.plist,包括CFBundleDocumentTypes
和UTExportedTypeDeclarations
?