Ich benutze Yojimbo nicht . AppleScript- whose
Filter müssen jedoch auf mehrere Objekte angewendet werden. Während selection
es sich dabei um eine Liste von Objekten handelt, selection-object
ist das eine einzige Entität und kann daher nicht von aktiviert werden whose
. items of selection
Theoretisch wäre dies eine geeignetere Sammlung zum Filtern, aber es items
wird einfach ein dereferenziertes Element generiert list
, das tatsächlich nicht gefiltert werden kann.
In anderen Apps, die verwendet werden selection-objects
, ist die selection
Eigenschaft zum Teil störend deseferenziert und daher nicht mit dem Filter möglich whose
.
Wenn dies möglich wäre length of its name
(was die Syntax ist, die in einem solchen Filter verwendet würde), ist dies keine gültige Eigenschaft, nach der gefiltert werden soll.
Aufgrund der Funktionsweise anderer Apps mit einem ähnlichen selection
Objekt müssen Sie die Liste leider manuell durchlaufen.
Wenn jedoch die Effizienz ein Problem ist, können Sie dies mit Hilfe des selection
Objekts im Finder, das eine Liste von Dateien und Ordnern darstellt, recht effizient durchführen :
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