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. ...

Get Building Cocoa Applications: A Step by Step Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.