这里非常非常新手XCode,虽然我多年前用它来做他们以前称之为Applescript Studio的各种事情。
我正试图让Finder告诉我在我的应用上删除的文件的名称:
on |application|:theApp openFile:aFile
display alert "123"
tell application "Finder"
set theName to (name of aFile)
end tell
display alert theName
end
显示“123”,但名称不是。我猜想我的语法错了 - 我看过Scripting Bridge,但这似乎是让我的应用程序能够响应来自其他脚本的苹果事件,这不是我想要的。
我很抱歉在原帖中偏离了可能的偏离主题的区域。我认为最好找到一个可以解决我自己的问题的地方,而不是每次我需要时都来寻求帮助; - )
有人可以帮我弄清楚如何让Finder告诉我文件的名称吗?
答案 0 :(得分:1)
aFile
是一个NSString,因此您可以使用Cocoa来解析aFile
本身。你可以随时获得Cocoa的全部资源;涉及Finder是不必要的。但是你不能使用AppleScript 显示一个NSString;您必须先将其转换为AppleScript字符串。所以,例如:
set lpc to aFile's lastPathComponent()
display alert (lpc as string)
如果您必须使用AppleScript进行解析(例如要求Finder为您执行此操作),因为您以这种方式更舒服,那么只需先说aFile as string
然后继续解析进一步生成的AppleScript字符串。例如:
set p to aFile as string
tell application "Finder"
set f to POSIX file p as alias
get name of f
display alert result
end tell
然而,我认为这是一种非常愚蠢的做法;脚本化另一个应用程序是昂贵的,而直接使用Cocoa则不是。