如何在finder窗口中刷新浏览器视图(mac os 10.5)?

时间:2012-02-01 13:03:18

标签: objective-c applescript macos-carbon finder appleevents

我想在mac os 10.5上刷新NSTableView finder中的所有NSBrowserView。对于刷新图标视图,列表视图和流列表视图,我使用的是Apple脚本。

@"tell application \"Finder\" to update every item in front window"

在浏览器视图中,此脚本仅刷新最后一列。

例如,此脚本仅刷新第三列(icns-copy.m .....)。

enter image description here 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

它只刷新最后一列,因为每个Finder窗口一次只有一个目标文件夹(其内容显示在最后一列)。解决方案是向上走文件夹层次结构并更新父文件夹。

tell application "Finder"
    set t to front window's target
    repeat
        try
            update every item in t
            set t to t's parent -- go one level up
        on error                -- e.g. when you reach root
            exit repeat
        end try
    end repeat
end tell

这是一个快速的解决方案,因为它一直上升到磁盘的根目录。理想情况下,它会停在最左边一列显示的文件夹中,但我无法弄清楚如何确定它是什么。

答案 1 :(得分:0)

tell application "Finder"
    set view to (get current view of front window as string)
    if view is equal to "column view" then
        set t to front window's target
        set p to folder "Myfolder" of folder "parag" of folder "Users" of startup disk as string
        repeat
            if (t as string) begins with p then
                try
                    update every item in t
                    set t to t's parent -- go one level up
                on error -- e.g. when you reach root
                    exit repeat
                end try
            else
                exit repeat
            end if
        end repeat
    end if
end tell