Cocoa Programming is a comprehensive work that starts as a fast-paced introduction to the OS architecture and the Cocoa language for programmers new to the environment. The more advanced sections of the book will show the reader how to create Cocoa applications using Objective-C, to modify the views, integrate multimedia, and access networks. The final sections explain how to extend system applications and development tools in order to create your own frameworks.
(NOTE: Each chapter concludes with a Summary.)
I. OVERVIEW.1. Cocoa and Mac OS X.
Understanding When to Use Cocoa. Understanding Cocoa's Role in Mac OS X. What You Need to Use Cocoa. What's Included in Cocoa.2. Cocoa Language Options.
Object Orientation. Java. Objective-C. Other Languages. Choosing a Language for Use with Cocoa. The Use of Objective-C in This Book.3. Using Apple's Developer Tools.
Obtaining Apple's Developer Tools. Project Builder. Interface Builder. Frameworks. Samples. Terminal. Other Tools.4. Objective-C.
Why Learn Objective-C? Additions to C. Apple's Extensions. The NSObject Base Class. Runtime Functions. Objective-C++.5. Cocoa Conventions.
Naming. Initializers. Managing Memory. Accessors. Using Memory Zones. Encoding and Decoding.6. Cocoa Design Patterns.
Understanding Design Patterns. A Catalog of Cocoa Design Patterns.
II. THE COCOA FRAMEWORKS.7. Foundation Framework Overview.
Mutability. Class Clusters. Typed Storage. Collections. Property Lists. Run Loops and Timers. Support Types. String Processing. Bundles. File System Access. Defaults System. Notifications. Related Core Foundation.8. The Application Kit Framework Overview.
Events and the Run Loop. Responders. NSApplication Overview. NSWindow Overview. NSView Overview. Delegates. Target-Action Paradigm. Archived Objects and Nibs. NSWindowController Overview. Multidocument Applications. Undo and Redo. Menu Validation. Spell Checking.9. Applications, Windows, and Screens.
The New Image Viewer. Working with NSWindow. Working with NSApplication. Modal Loops. Working with Sheets. Working with Drawers. Working with Screens. Working with Panels.10. Views and Controls.
Controls. Simple Views and Controls. Container Views and Controls. Compound Controls.11. The Cocoa Text System.
Using the High-Level Text Classes. The Text System Architecture. Managing Fonts. Text Input.12. Custom Views and Graphics Part I.
The Quartz Graphics Model. Quartz Graphics Via the Application Kit. Using the NSBezierPath Class. Modifying Drawing.13. Custom Views and Graphics Part II.
Using NSGraphicsContext. Coordinate System Transformations. Drawing Points and Rectangles. Optimizing Drawing.14. Custom Views and Graphics Part III.
Images and Bitmaps. Drawing Text.15. Events and Cursors.
Event Handling in Custom NSView Subclasses. Managing Cursors.16. Menus.
Standard Menu Layouts. NSMenu Class. NSMenuItem Class. Menu Validation. Contextual Menus. Dock Menus. Deprecated Functionality.17. Color.
NSColor Class. Color Wells. Color Panels. Customizing the Color Panel. NSColorList Class.18. Advanced Views and Controls.
NSTableView, NSOutlineView, and NSBrowser Concepts. Table Views. Outline Views. Browsers. Combo Boxes. Custom Controls. Toolbars. Status Bars. NSQuickDrawView Class.19. Using Pasteboards.
Pasteboard Concepts. Implementing Cut, Copy, and Paste. Implementing Drag and Drop. Implementing Services.20. Adding Online Help.
Apple Help. ToolTips. Context-Sensitive Help (NSHelpManager).21. Multimedia.
Sound. QuickTime. 3D Graphics.22. Integrating with the Operating System.
Getting System Information. Authentication and Security. Communicating with the Workspace.23. Networking.
NSURL and NSURLHandle. Email Messages. Directory Services. Interapplication Programming.24. Subprocesses and Threads.
Choosing Between Subprocesses and Threads. Using the NSTask Class. Using the NSThread Class. Locking. Threading Issues.25. Printing.
Basic Printing. Overview of the Printing Classes. NSView's Printing Support. Printing and Pagination Example. Printing in NSDocument-Based Applications.
III. COCOA TECHNIQUES.26. Application Requirements, Design, and Documentation.
Designing an Application with Requirements. Designing TransparentTetris. Implementing the Design. Using AutoDoc.27. Creating Custom Frameworks.
Creating and Using a Framework. Header Files. Providing Backward Compatibility. Debugging Frameworks.28. Distributing Applications.
Package Directories. Using Disk Images. Application Installation.
IV. APPENDIXES.Appendix A. Unleashing the Objective-C Runtime.
Objective-C Objects. Messaging with IMPs and Selectors. Common Runtime Functions. Forwarding, Distributed Objects, and Proxies. Examples.Appendix B. Optimizing and Finding Memory Leaks.
Optimizing Applications. Finding Memory Leaks.Appendix C. Finding Third-Party Resources.
Apple-Provided Documentation. Example Code. Web Sites. Mailing Lists.Appendix D. Cocoa Additions in Mac OS X Version 10.2.
Quartz Extreme. Handwriting Recognition. Address Book and vCard. Universal Access. Updated Tools. Framework Enhancements.Index.