В OS X Lion, запрашивая Finder для текущего выбора, возвращает неправильный файл - PullRequest
6 голосов
/ 08 декабря 2011

Я подтвердил, что это происходит только во Льве. Я обнаружил ошибку, из-за которой вам нужно дважды сфокусировать окно, чтобы Finder возвращал правильный результат через мост сценариев или AppleScript. Это происходит только при открытии папки с рабочего стола или другого пространства.

Вот как дублировать:

  1. Закройте, скройте или сверните все окна, пока не появится рабочий стол.
  2. Откройте любую папку на рабочем столе, появится новое окно поиска. Выберите любой файл в этом окне поиска, щелкнув по нему один раз.
  3. Откройте редактор AppleScript и запустите следующий скрипт:

    tell application "Finder"
        return selection
    end tell
    

Сценарий вернет только путь к папке на рабочем столе, а не выбранный файл в окне поиска.

Если перефокусировать окно или снова щелкнуть файл, все работает как положено, и сценарий возвращает правильный путь.

Это похоже на ошибку в Lion. Snow Leopard возвращает правильный путь 100% времени.

Я пробовал следующие методы безуспешно:

  1. Использование скриптового моста и https://github.com/davedelong/BetterInfo/blob/master/Finder.h
  2. Используя скрипт Apple «Системные события», нажмите «Редактировать» -> «Копировать»
  3. Использование AppleScript для получения текущего выбора из искателя.

Кажется, у всех одна и та же проблема.

Я что-то упускаю из виду или это действительно проблема со Львом?

1 Ответ

1 голос
/ 09 декабря 2011

Ух ты, я могу подтвердить (по крайней мере с помощью appleScript) большую часть того, что вы описываете.Мне возвращали пустой список, даже не указанный вами путь к рабочему столу.Я проверял это с помощью сценария в меню applecript.Единственный способ получить выбор из свежего окна Finder - вот так ...

tell application "System Events" to activate
tell application "Finder"
    activate
    set a to (get selection) as text
    display dialog a
end tell
...