Exercises

  1. Move the PDF- and TIFF-generation functionality from the Controller to the GraphView class. What are the advantages of having it in each class? Which is better? Does this make the implementation of drag-and-drop easier or more complex?

  2. It’s relatively easy to drag a color chip onto the graph or the function text, but it is very difficult to drag a chip onto the axes. Why? How would you fix this problem?

  3. Instead of implementing all of the drag-receiving functionality in the ColorGraphView class, we should have implemented receiving of dragged-in color objects in the ColorGraphView class and of dragged-in text objects in the GraphView class. We didn’t do this for the sake of brevity — it actually takes less typing to implement drag-receiving in one place. Try to implement each kind of functionality in the appropriate class. What are the advantages of implementing the two kinds of drag functionality in two different classes instead of one class?

  4. Implement a text drag-and-drop receiver (i.e., the NSTextField labeled “y(x)=”), so that when a formula is dragged in, it automatically gets graphed.

  5. If we use the Cocoa drag-and-drop system, it is not possible for the source of a drag-and-drop event to determine a drag-and-drop destination. This is possible, however, using Apple’s underlying Core framework system. Investigate this Core Foundation framework and modify the GraphView application so that it displays information about the drag-and-drop recipient.

  6. When you drag out the ...

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.