【问题标题】:Assigning a custom icon to a Mac desktop element将自定义图标分配给 Mac 桌面元素
【发布时间】:2011-12-29 05:57:15
【问题描述】:

我正在使用 Swing 编写一个应用程序,其中涉及在桌面上为特定站点创建一个 Internet 快捷方式。它在 Windows 中运行良好。 Mac 允许我创建快捷方式,但不允许我为其分配自定义图标。如何以编程方式将图标分配给 Mac 上的 URL 文件?

这是我的代码:

import java.io.*;

public class MACutils {
    private MACutils() {
    }

    public static void createInternetShortcutOnDesktop(String name,
      String target, String icon) throws IOException {
        String username = System.getProperty("user.home");
        System.out.println(username);
        String path = username + "/Desktop" + "/" + name + ".URL";
        createInternetShortcut(name, path, target, icon);
    }

    public static void createInternetShortcut(String name, String where,
      String target, String icon) throws IOException {
        FileWriter fw = new FileWriter(where);
        fw.write("[InternetShortcut]\n");
        fw.write("URL=" + target + "\n");

        if (!icon.equals("")) {
            fw.write("IconFile=" + icon + "\n");
              // icon has the path to my .png/.icns image
            fw.write("IconIndex=0");
        }
        fw.flush();
        fw.close();
    }
}

【问题讨论】:

    标签: java macos icons shortcuts filewriter


    【解决方案1】:

    您可以创建一个带有.webloc 文件扩展名的文件,然后使用该URL 将plist 写入该文件,即

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>URL</key>
        <string>http://hasseg.org/setWeblocThumb/#scmRepoInfo</string>
    </dict>
    </plist>
    

    编写图标比较棘手,因为 Mac OS X 将其存储在 Resource Fork 中。

    example app with source in Objective-C

    【讨论】:

    • hi @nekno setweblocThumb 对我不起作用,尽管我正在将 .webloc 文件添加到我的桌面,但它一直在终端上抛出“没有找到要启动的东西”。此外,它应该分配链接指向的网页图像,而不是我的自定义 .icns 或 .png 文件..我需要将其发送给我的客户,我真的需要有自己的自定义图标文件..那里我还有其他方法可以做到吗?..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多