Objective c 查找器更新/刷新applescript在10.8中不起作用

Objective c 查找器更新/刷新applescript在10.8中不起作用,objective-c,applescript,osx-mountain-lion,finder,appleevents,Objective C,Applescript,Osx Mountain Lion,Finder,Appleevents,我一直在使用apple脚本更新finder中文件和文件夹的显示。这是该脚本的简化版本: tell application "Finder" tell window 1 to update items end tell 我可以看到,由于10.8(Mountain Lion)更新命令没有正确执行或根本没有执行。在10.8版本之前,一切都很完美——在更新命令后,所有图标都立即被重新绘制。 我用它来显示叠加图标 你们有没有遇到过同样的问题? 我责怪finder更改了apple脚本api,因为如

我一直在使用apple脚本更新finder中文件和文件夹的显示。这是该脚本的简化版本:

tell application "Finder"
    tell window 1 to update items
end tell
我可以看到,由于10.8(Mountain Lion)更新命令没有正确执行或根本没有执行。在10.8版本之前,一切都很完美——在更新命令后,所有图标都立即被重新绘制。 我用它来显示叠加图标

你们有没有遇到过同样的问题?
我责怪finder更改了apple脚本api,因为如果我触摸-a-m文件,它会得到更新。所以肯定有办法更新它。

我和你有同样的问题。当我用10.8SDK构建应用程序时,我正要发布它,但Mountain Lion刚刚破坏了我的“刷新查找窗口”和“显示/隐藏隐藏文件”菜单选项。我什么都试过了,都没有用。唯一有帮助的是,如果您在再次写入Finder首选项之前等待60-90秒

在终端:

默认写入com.apple.Finder appleshowall文件TRUE&&killall Finder

等待大约一分钟到一分半,然后按如下方式反转命令:

默认写入com.apple.Finder AppleShowAllFiles FALSE&&killall查找器

(我不知道如何通过终端刷新Finder,但这种延迟可能会对您有所帮助。)

这是我目前知道的唯一一种让Finder窗口做任何我想让它们做的事情的方法。非常令人沮丧;我希望有人能很快发现这一点,否则我的一个主要卖点就消失了


-Chris

您可以在finder中创建可见的文件来刷新finder窗口

tell application "Finder"
    set currentPath to (POSIX path of (target of front window as alias))
    set filePath to currentPath & "UUID" --create UUID
    do shell script "touch \"" & filePath & "\""
    delay 0.5
    do shell script "rm \"" & filePath & "\""
end tell

我也看到了延迟。当我向finder发送update命令时,真正刷新图标需要一些时间(可能是延迟)。看起来苹果已经对finder进行了一些“优化”,所以它并没有立即刷新。无论如何,它对我没有用,因为我需要实时重新绘制图标。在10.8.2,脚本与列表和流视图不兼容。同时,我通过向finder中注入另一个代码解决了这个问题(因为我对一些覆盖图标这样做)我没有找到任何其他可靠和干净的解决方案。谢谢分享这个段落。我的桌面上有一个应用程序包。我更改了它的resources文件夹中的icns文件,但它没有更新。当我试着运行这段代码时,我得到了一个错误:
AppleScript error-无法将应用程序“Finder”窗口1的«class fvtg»转换为类型alias。
你知道我如何解决这个问题吗?你认为这会刷新我的图标吗?哦,我使用10.9 btw,但我在寻找一个解决方案,在所有>=10工作。5@ParagBanfna此脚本只在第一次运行或执行时才运行,那么此脚本将不会执行或运行:(您能告诉我为什么会发生这种情况吗?