在Objective-C中获取另一个应用程序的图标

Tyi*_*ilo 8 macos objective-c

如何使用Objective-C从其他应用程序获取图标?

到目前为止我已尝试过这个,但它只是返回null:

NSURL *path = [NSURL URLWithString:@"/Applications/Calculator.app"];

NSLog(@"%@", path);

NSImage *image = (__bridge NSImage *)(QLThumbnailImageCreate(kCFAllocatorDefault, (__bridge CFURLRef)(path), CGSizeMake(100, 100), (__bridge CFDictionaryRef)(@{(NSString *)kQLThumbnailOptionIconModeKey: @NO})));

NSLog(@"%@", image);
Run Code Online (Sandbox Code Playgroud)

sup*_*ell 19

您可以使用NSWorkspace,例如

NSImage *image = [[NSWorkspace sharedWorkspace] iconForFile:path];
Run Code Online (Sandbox Code Playgroud)

如果您想使用应用程序bundleId而不是知道其路径,则可以先执行此操作

path = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:bundleIdentifier];
Run Code Online (Sandbox Code Playgroud)