Chapter 20. Pasteboards, Services, Modal Sessions, and Drag-and-Drop
In the previous chapter, we showed how images produced by the GraphPaper application can be incorporated into other programs by saving the images in PDF or TIFF files. In this chapter, we’ll show more ways that Cocoa provides for making applications work together: the cut, copy, and paste system; the Services system; and the drag-and-drop system. To make the Services system work, we’ll also need to introduce the concept of modal sessions — that is, event loops other than the primary event loop. You’ll enjoy this chapter, because Services and drag-and-drop are really nifty features.
Cut, Copy, and Paste with the Pasteboard
The Cocoa NSPasteboard object provides a simple and direct way for users to transfer data between applications using familiar copy, cut, and paste commands. In fact, every application we’ve created already implements copy, cut, and paste inside the text fields: this behavior is built into the NSTextView class.
Cocoa extends the traditional notions of cut, copy, and paste by providing multiple pasteboards (clipboards), each of which can hold several different data representations simultaneously. It also provides lazy evaluation , a system whereby information is not put onto the pasteboard unless it is needed by a receiving application.
Types of Pasteboards
Cocoa provides the following five basic pasteboards:
- General pasteboard (NSGeneralPboard)
Used to cut, copy, and paste data between applications. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access