Acknowledgments. 1. Cocoa: What Is It? A Little History. Tools. Objects, Classes, Methods, and Messages. Frameworks. How to Read this Book. Typographical Conventions.
How to Learn. 2. Let''s Get Started. In Project Builder. In Interface Builder. Back in Project Builder. Documentation. What Have You Done? 3.
Objective-C. Creating and Using Instances. Using Existing Classes. Creating Your Own Classes. The Debugger. What Have You Done? For the More Curious: How Does Messaging Work? Challenge. 4. Controls.
Some Commonly Used Subclasses of NSControl. Start the RaiseMan Example. The Interface File for MyDocument. Layout the Interface. Implementing the Person Class. Implementing the MyDocument Class. What Have You Done? For the More Curious: Setting the Target Programmatically. Challenge.
5. Helper Objects. NSTableView and Its Data Source. MyDocument Interface File. Layout the User Interface. Make Connections. Edit MyDocument.m.
Key-value Coding. Delegates. For the More Curious: How Delegates Work. Challenge 1. Challenge 2. 6. Archiving. NSCoder and NSCoding.
The Document Architecture. Saving and NSArchiver. Loading and NSUnarchiver. Informing the Document That It Has Been Edited. Setting the Extension and Icon for the File Type. For the More Curious: Preventing Infinite Loops. For the More Curious: Versioning. For the More Curious: Creating a Protocol.
7. Nib Files and NSWindowController. NSPanel. Adding a Panel to the Application. For the More Curious: NSBundle. Challenge 1. Challenge 2. 8.
User Defaults. NSDictionary and NSMutableDictionary. NSUserDefaults. Creating Keys for the Names of the Defaults. Registering Defaults. Let the User Edit the Defaults. Using the Defaults. Saving the Frame of a Window.
For the More Curious: Reading and Writing Defaults from the Command-line. Challenge. 9. Using Notifications. What Notifications Are. What Notifications Are Not. NSNotification. NSNotificationCenter.
Posting a Notification. Registering as an Observer. Unregistering the Observer. Handling the Notification When It Arrives. For the More Curious: Delegates and Notifications. For the More Curious: The userInfo Dictionary. Challenge. 10.
Using Alert Panels. Make the User Confirm the Delete. Challenge. 11. Localization. Localizing a Nib File. String Tables. For the More Curious: nibtool.
Challenge. 12. Custom Views. The View Hierarchy. Get a View to Draw Itself. Drawing with NSBezierPath. NSScrollView. For the More Curious: Cells.
Challenge 1. 13. Images and Mouse Events. NSResponder. NSEvent. Getting Mouse Events. Using NSOpenPanel. Composite an Image Onto Your View.
The View''s Coordinate System. Autoscrolling. For the More Curious: NSImage. Challenge. 14. Responders and Keyboard Events. NSResponder. NSEvent.
Create a New Project with a Custom View. 15. Working with Fonts and NSString. NSFont. NSAttributedString. Drawing Strings and Attributed Strings. Making Letters Appear. Getting Your View to Generate PDF Data.
For the More Curious: NSFontManager. Challenge 1. Challenge 2. 16. Pasteboards and Nil-targeted actions. NSPasteboard. Add Cut, Copy, and Paste to BigLetterView. Nil-targeted Actions.
For the More Curious: Which Object Really Sends the Action Message? For the More Curious: Lazy Copying. Challenge. 17. Categories. Add a Method to NSString. 18. Drag and Drop. Make BigLetterView a Drag Source.
Make a BigLetterView a Drag Destination. Challenge. 19. NSTimer. Layout the Interface. Make Connections. Adding Code to AppController. Challenge.
20. Sheets. Adding a Sheet. For the More Curious: contextInfo. For the More Curious: NSDrawer. Challenge. 21. Creating NSFormatters.
A Basic Formatter. The Delegate of the NSControl. Checking Partial Strings. The Control''s Delegate and Partial Strings. Formatters that Return Attributed Strings. Challenge. 22. Printing.
Adding Printing to TypingTutor. Dealing with Pagination. Challenge. 23. Updating Menu_n. Making a BigLetterView Uncopyable. 24. Working with NSTextView.
NSTextView. Messages the Delegate Will Be Sent. Build the Editor With Which This Book Was Written. For the More Curious: The Field Editor. 25. Using Java with Cocoa. Don''t Use Java to Write Cocoa Applications. If You Must Use Java to Write Cocoa Applications.
26. Creating Interface Builder Palettes. Add NSCoding Methods to BigLetterView. Create a Palette Project. Edit the Nib File for Your Palette. palette.table. Build and Test.
FinishInstantiate. Adding an Inspector. For the More Curious: How to Palettize Objects That Are Not Views. Challenge. 27. The End. Index. 0201726831T10152001.