Why copy multiple file use AppleScript cannot paste to 3rd party application?

90 Views Asked by At

I cannot paste to application, but in finder it works fine.

I also try use swift + NSPasteboard, seems to be the same problem.

What do I need to do to make it work totally same like finder?

Whether to use AppleScript or swift, I will take that.

#!/usr/bin/osascript

use framework "Appkit"
use scripting additions
use Finder : application "Finder"

property this : a reference to current application
property NSFileManager : a reference to NSFileManager of this
property NSImage : a reference to NSImage of this
property NSMutableArray : a reference to NSMutableArray of this
property NSPasteboard : a reference to NSPasteboard of this
property NSString : a reference to NSString of this
property NSURL : a reference to NSURL of this

property pb : missing value

on run input
    if input's class = script then set input to ¬
        Finder's selection as alias list

    init()
    clearClipboard()
    addToClipboard(input)
end run


to init()
    set pb to NSPasteboard's generalPasteboard()
end init

to clearClipboard()
    if pb = missing value then init()
    pb's clearContents()
end clearClipboard

to addToClipboard(fs)
    local fs

    set fURLs to NSMutableArray's array()
    set FileManager to NSFileManager's defaultManager()

    repeat with f in fs
        set f to do shell script "realpath '" & f & "'"
        if f's class = alias then set f to f's POSIX path
        set fp to (NSString's stringWithString:f)'s ¬
            stringByStandardizingPath()
        if (FileManager's fileExistsAtPath:fp) then ¬
            (fURLs's addObject:(NSURL's fileURLWithPath:fp))
    end repeat

    if pb = missing value then init()
    pb's writeObjects:fURLs
    #pb's setPropertyList:(fURLs, NSPasteboard's PasteboardType)
end addToClipboard

0

There are 0 best solutions below