Je n'utilise pas Yojimbo . Cependant, AppleScript whose
doivent être appliqués à une au pluriel objet. Alors que selection
es lui-même une liste d'objets, le selection-object
est une entité unique, et ne peut donc pas être promulguée par whose
. items of selection
serait, en théorie, une collection plus appropriée à filtrer, mais items
générera simplement un fichier déréférencé list
qui, en fait, ne peuvent pas non plus être filtrés.
Dans d'autres applications qui utilisent selection-objects
le selection
est fâcheusement déréférencée partiellement et n'est donc pas filtrable avec la propriété whose
.
Si c'était possible, length of its name
(qui est la syntaxe qui serait utilisée dans un tel filtre) n'est pas une propriété valide pour filtrer.
Malheureusement, en se basant sur la façon dont d'autres applications avec une selection
fonctionne, vous devrez itérer dans la liste manuellement.
Cependant, si l'efficacité est une préoccupation, voici un moyen assez efficace de le faire, comme illustré par l'utilisation de l'icône de l'utilisateur. selection
objet dans Finder qui est une liste de fichiers et de dossiers :
property Finder : application "Finder"
to filterItems from (L as list) thru filter as handler into |L| as list : null
local L, |L|, filter
if |L| = null then set |L| to {}
script filteredItems
property array : L
property fn : filter
property list : |L|
end script
tell the filteredItems to repeat with x in its array
if fn(x) = true ¬
then set ¬
end of its list ¬
to x's contents
end repeat
return the list of filteredItems
end filterItems
on characterCount(x)
set |name| to the name of x
|name|'s length > 12
end characterCount
filterItems from (Finder's selection) thru characterCount