filePromiseProvider writePromiseTo URL not working when dragging image to another application The Next CEO of Stack OverflowDragging an Image from Safari and dropping it onto dock icon does not work in snow leopard?NSPasteBoard get file from the Download (Grid View) in dock via DragAndDrop to App Statusbar IconFile drag and drop view works when app is run from XCode but not as standalone appDo Swift-based applications work on OS X 10.9/iOS 7 and lower?Write multiple files using OS X sandboxcocoa: Drag and Drop svg imagesSaving to directory in sandboxed app using NSOpenPanel doesn't work, but drag/drop doesDragging image from NSView to Finder. Alternative to dragImage:at:offset:event:pasteboard:source:slideBack:url(forResource) keeps returning nil for image in the bundleNSPasteboard: Copying promised file data to other sandboxed apps

Can you teleport closer to a creature you are Frightened of?

Is French Guiana a (hard) EU border?

Do I need to write [sic] when including a quotation with a number less than 10 that isn't written out?

Does the Idaho Potato Commission associate potato skins with healthy eating?

What flight has the highest ratio of timezone difference to flight time?

Players Circumventing the limitations of Wish

Strange use of "whether ... than ..." in official text

What's the commands of Cisco query bgp neighbor table, bgp table and router table?

From jafe to El-Guest

If Nick Fury and Coulson already knew about aliens (Kree and Skrull) why did they wait until Thor's appearance to start making weapons?

What day is it again?

What would be the main consequences for a country leaving the WTO?

Is dried pee considered dirt?

Defamation due to breach of confidentiality

What does "shotgun unity" refer to here in this sentence?

IC has pull-down resistors on SMBus lines?

Where do students learn to solve polynomial equations these days?

What are the unusually-enlarged wing sections on this P-38 Lightning?

Help understanding this unsettling image of Titan, Epimetheus, and Saturn's rings?

Lucky Feat: How can "more than one creature spend a luck point to influence the outcome of a roll"?

Is there such a thing as a proper verb, like a proper noun?

Is there an equivalent of cd - for cp or mv

Getting Stale Gas Out of a Gas Tank w/out Dropping the Tank

Free fall ellipse or parabola?



filePromiseProvider writePromiseTo URL not working when dragging image to another application



The Next CEO of Stack OverflowDragging an Image from Safari and dropping it onto dock icon does not work in snow leopard?NSPasteBoard get file from the Download (Grid View) in dock via DragAndDrop to App Statusbar IconFile drag and drop view works when app is run from XCode but not as standalone appDo Swift-based applications work on OS X 10.9/iOS 7 and lower?Write multiple files using OS X sandboxcocoa: Drag and Drop svg imagesSaving to directory in sandboxed app using NSOpenPanel doesn't work, but drag/drop doesDragging image from NSView to Finder. Alternative to dragImage:at:offset:event:pasteboard:source:slideBack:url(forResource) keeps returning nil for image in the bundleNSPasteboard: Copying promised file data to other sandboxed apps










1















I have File Promises implemented in a Cocoa app that allows dragging images from a view and dropping them to folders on the machine or to apps like preview or evernote. In the past this has worked well using the NSDraggingSource delegate and 'namesOfPromisedFilesDropped' method. This method would return the drop location and would allow me to write the image data directly there. So when dropping to an application icon like preview, or within an app like evernote, the file would be written and the app would either load or the image would simply show within.



Unfortunately this method was deprecated in 10.13 so it no longer gets called in new OS versions. Instead I've switched over to using the filePromiseProvider writePromiseTo url method of the "NSFilePromiseProviderDelegate" delegate. This method gets called, and the image data is processed. I get the destination URL and attempt to write the image data to this location. This works perfectly fine when simply dragging to folders on the Mac. But, when dragging to other app icons like Preview.app, or directly to a folder in Evernote, I get an error 'Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"'.



I've attempted this using full URLs, and, URL paths. Regardless of either, when dragging to other apps it simply will not allow the drop or creation of the file at that location.



Is there some entitlement that may be missing? I've even attempted the Apple source code found here with the same error: File Promises Source



Here is the code I'm using now that's returning the error with inability to write to outside app locations. This only works for dragging to folders on the computer.



extension DragDropContainerView: NSFilePromiseProviderDelegate 
internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, fileNameForType fileType: String) -> String
let fileName = NameFormatter.getFormattedNameFromDate() + "." + fileType.getFileType().typeIdentifier
return fileName


internal func operationQueue(for filePromiseProvider: NSFilePromiseProvider) -> OperationQueue
return workQueue


internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, writePromiseTo url: URL, completionHandler: @escaping (Error?) -> Void)
if let snapshot = filePromiseProvider.userInfo as? SnapshotItem
if let data = snapshot.representationData
do
try data.write(to: url)
completionHandler(nil)
catch
completionHandler(error)







Any help on this issue would be great. Ultimately, I simply want to be able to drag the image to an app and have that app accept the drag. This used to work but no longer does.










share|improve this question




























    1















    I have File Promises implemented in a Cocoa app that allows dragging images from a view and dropping them to folders on the machine or to apps like preview or evernote. In the past this has worked well using the NSDraggingSource delegate and 'namesOfPromisedFilesDropped' method. This method would return the drop location and would allow me to write the image data directly there. So when dropping to an application icon like preview, or within an app like evernote, the file would be written and the app would either load or the image would simply show within.



    Unfortunately this method was deprecated in 10.13 so it no longer gets called in new OS versions. Instead I've switched over to using the filePromiseProvider writePromiseTo url method of the "NSFilePromiseProviderDelegate" delegate. This method gets called, and the image data is processed. I get the destination URL and attempt to write the image data to this location. This works perfectly fine when simply dragging to folders on the Mac. But, when dragging to other app icons like Preview.app, or directly to a folder in Evernote, I get an error 'Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"'.



    I've attempted this using full URLs, and, URL paths. Regardless of either, when dragging to other apps it simply will not allow the drop or creation of the file at that location.



    Is there some entitlement that may be missing? I've even attempted the Apple source code found here with the same error: File Promises Source



    Here is the code I'm using now that's returning the error with inability to write to outside app locations. This only works for dragging to folders on the computer.



    extension DragDropContainerView: NSFilePromiseProviderDelegate 
    internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, fileNameForType fileType: String) -> String
    let fileName = NameFormatter.getFormattedNameFromDate() + "." + fileType.getFileType().typeIdentifier
    return fileName


    internal func operationQueue(for filePromiseProvider: NSFilePromiseProvider) -> OperationQueue
    return workQueue


    internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, writePromiseTo url: URL, completionHandler: @escaping (Error?) -> Void)
    if let snapshot = filePromiseProvider.userInfo as? SnapshotItem
    if let data = snapshot.representationData
    do
    try data.write(to: url)
    completionHandler(nil)
    catch
    completionHandler(error)







    Any help on this issue would be great. Ultimately, I simply want to be able to drag the image to an app and have that app accept the drag. This used to work but no longer does.










    share|improve this question


























      1












      1








      1








      I have File Promises implemented in a Cocoa app that allows dragging images from a view and dropping them to folders on the machine or to apps like preview or evernote. In the past this has worked well using the NSDraggingSource delegate and 'namesOfPromisedFilesDropped' method. This method would return the drop location and would allow me to write the image data directly there. So when dropping to an application icon like preview, or within an app like evernote, the file would be written and the app would either load or the image would simply show within.



      Unfortunately this method was deprecated in 10.13 so it no longer gets called in new OS versions. Instead I've switched over to using the filePromiseProvider writePromiseTo url method of the "NSFilePromiseProviderDelegate" delegate. This method gets called, and the image data is processed. I get the destination URL and attempt to write the image data to this location. This works perfectly fine when simply dragging to folders on the Mac. But, when dragging to other app icons like Preview.app, or directly to a folder in Evernote, I get an error 'Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"'.



      I've attempted this using full URLs, and, URL paths. Regardless of either, when dragging to other apps it simply will not allow the drop or creation of the file at that location.



      Is there some entitlement that may be missing? I've even attempted the Apple source code found here with the same error: File Promises Source



      Here is the code I'm using now that's returning the error with inability to write to outside app locations. This only works for dragging to folders on the computer.



      extension DragDropContainerView: NSFilePromiseProviderDelegate 
      internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, fileNameForType fileType: String) -> String
      let fileName = NameFormatter.getFormattedNameFromDate() + "." + fileType.getFileType().typeIdentifier
      return fileName


      internal func operationQueue(for filePromiseProvider: NSFilePromiseProvider) -> OperationQueue
      return workQueue


      internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, writePromiseTo url: URL, completionHandler: @escaping (Error?) -> Void)
      if let snapshot = filePromiseProvider.userInfo as? SnapshotItem
      if let data = snapshot.representationData
      do
      try data.write(to: url)
      completionHandler(nil)
      catch
      completionHandler(error)







      Any help on this issue would be great. Ultimately, I simply want to be able to drag the image to an app and have that app accept the drag. This used to work but no longer does.










      share|improve this question
















      I have File Promises implemented in a Cocoa app that allows dragging images from a view and dropping them to folders on the machine or to apps like preview or evernote. In the past this has worked well using the NSDraggingSource delegate and 'namesOfPromisedFilesDropped' method. This method would return the drop location and would allow me to write the image data directly there. So when dropping to an application icon like preview, or within an app like evernote, the file would be written and the app would either load or the image would simply show within.



      Unfortunately this method was deprecated in 10.13 so it no longer gets called in new OS versions. Instead I've switched over to using the filePromiseProvider writePromiseTo url method of the "NSFilePromiseProviderDelegate" delegate. This method gets called, and the image data is processed. I get the destination URL and attempt to write the image data to this location. This works perfectly fine when simply dragging to folders on the Mac. But, when dragging to other app icons like Preview.app, or directly to a folder in Evernote, I get an error 'Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"'.



      I've attempted this using full URLs, and, URL paths. Regardless of either, when dragging to other apps it simply will not allow the drop or creation of the file at that location.



      Is there some entitlement that may be missing? I've even attempted the Apple source code found here with the same error: File Promises Source



      Here is the code I'm using now that's returning the error with inability to write to outside app locations. This only works for dragging to folders on the computer.



      extension DragDropContainerView: NSFilePromiseProviderDelegate 
      internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, fileNameForType fileType: String) -> String
      let fileName = NameFormatter.getFormattedNameFromDate() + "." + fileType.getFileType().typeIdentifier
      return fileName


      internal func operationQueue(for filePromiseProvider: NSFilePromiseProvider) -> OperationQueue
      return workQueue


      internal func filePromiseProvider(_ filePromiseProvider: NSFilePromiseProvider, writePromiseTo url: URL, completionHandler: @escaping (Error?) -> Void)
      if let snapshot = filePromiseProvider.userInfo as? SnapshotItem
      if let data = snapshot.representationData
      do
      try data.write(to: url)
      completionHandler(nil)
      catch
      completionHandler(error)







      Any help on this issue would be great. Ultimately, I simply want to be able to drag the image to an app and have that app accept the drag. This used to work but no longer does.







      swift macos cocoa macos-mojave nsfilepromiseprovider






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 8 at 19:35









      Josh Caswell

      59.3k12131177




      59.3k12131177










      asked Mar 7 at 18:27









      mejim707mejim707

      139116




      139116






















          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55050533%2ffilepromiseprovider-writepromiseto-url-not-working-when-dragging-image-to-anothe%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55050533%2ffilepromiseprovider-writepromiseto-url-not-working-when-dragging-image-to-anothe%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

          Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

          Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved