我正在尝试使用LSSharedFileListInsertItemURL ( 10.5中的recommended方法)以编程方式添加一个启动项
呼叫请求,但不需要项目的图标。该图标由iconRef提供。
可以通过使用图标文件的FSSpec来创建iconRef。我的理解是FS Spec在10.4以后的版本中被弃用了。
有没有办法在iconRef中获得应用程序的.icns,而不是求助于FSSpec,或者我只需要使用NULL?
发布于 2011-04-01 12:30:09
我的理解是FS规范在10.4以后的版本中被弃用了。
比那更长。
有没有办法在iconRef中获得应用程序的.icns,而不是求助于FSSpec,或者我只需要使用NULL?
使用the RegisterIconRefFromFSRef function。
传递NULL将添加没有图标的项目;IIRC,当用户查看系统首选项中的登录项目列表时,它将有文档图标。
发布于 2011-04-01 12:51:32
H文件说明要使用GetIconRefFromFileInfo
extern OSStatus
GetIconRefFromFileInfo(
const FSRef * inRef,
UniCharCount inFileNameLength,
const UniChar * inFileName, /* can be NULL */
FSCatalogInfoBitmap inWhichInfo,
const FSCatalogInfo * inCatalogInfo, /* can be NULL */
IconServicesUsageFlags inUsageFlags,
IconRef * outIconRef,
SInt16 * outLabel) /* can be NULL */不推荐使用的函数GetIconRefFromFile上的注释表明您应该使用该函数。您可以使用CFURLGetFSRef将CFURL转换为FSRef。希望这能有所帮助。
https://stackoverflow.com/questions/5504125
复制相似问题