如何在Xcode AppleScript应用程序中使用系统图标?

时间:2019-01-11 11:58:06

标签: xcode macos-mojave applescript-objc

是否可以使用以下方式使用系统图标:/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ 无需将它们添加到具有AppleSript的应用程序中我项目的Resource文件夹中?

1 个答案:

答案 0 :(得分:0)

是的,只需使用POSIX路径。如果您使用的是显示对话框,则Xcode中的AppleScript有点麻烦,因此您需要明确地强制使用它:

display dialog "hello" with icon ("/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericQuestionMarkIcon.icns" as POSIX file)

如果您使用的是 NSAlert ,则icon属性必须是图像,因此您可以从路径中获取一个,例如:

set myAlert to current application's NSAlert's alloc's init()
set myAlert's messageText to "hello"
set myAlert's icon to current application's NSImage's alloc's initByReferencingFile:"/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericQuestionMarkIcon.icns"
myAlert's runModal()

对于使用 NSImage 的其他对象,您可以以相同的方式从路径中获取图像,并使用相关的属性或setter方法设置该对象的图像:

set yourImageView's image to current application's NSImage's alloc's initByReferencingFile:"/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericQuestionMarkIcon.icns"