Introduction . xi About Vermont Recipes Why Cocoa? Why Objective-C? Naming Conventions Apple''s Cocoa Documentation Xcode and Interface Builder New Technologies The Vermont Recipes Application Specification Downloading and Installing the Project Files Section 1: Objective-C and the Cocoa Frameworks Ingredients: Language, Frameworks, and Tools Appliances and Utensils Ingredients Serving Suggestions Section 2: Building an Application Recipe 1: Create the Project Using Xcode Step 1: Create the New Project Step 2: Explore the Project Step 3: Set Xcode Preferences Step 4: Revise the Document''s Header and Implementation Files Step 5: Rename the Document''s Files Step 6: Edit the Document''s Methods Step 7: Create and Revise the Window Controller Files Step 8: Edit the Credits File Step 9: Edit the Info.plist File Step 10: Edit the InfoPlist.strings File Step 11: Create a Localizable.strings File Step 12: Set the Project''s Properties and Build Settings Step 13: Build and Run the Application Step 14: Save and Archive the Project Conclusion Recipe 2: Design and Build the GUI Using Interface Builder Step 1: Explore and Revise the Document Window''s Nib File Step 2: Add a Toolbar Step 3: Add a Vertical Split View Step 4: Add a Horizontal Split View Step 5: Add a Tab View Step 6: Add a Drawer Step 7: Add a Toolbar Item to Open and Close the Drawer Step 8: Build and Run the Application Step 9: Save and Archive the Project Conclusion Recipe 3: Create a Simple Text Document Step 1: Create the DiaryDocument Class in Xcode Step 2: Save a Snapshot of the Project Step 3: Create the DiaryWindowController Class and Its Nib File in Interface Builder Step 4: Add Scrolling Text Views to the Diary Window Step 5: Create the VRDocument-Controller Class and a New Menu Item Step 6: Add the Diary Document to the Info.plist File Step 7: Read and Write the Diary Document''s Text Data Step 8: Configure the Split View Diary Window Step 9: Build and Run the Application Step 10: Save and Archive the Project Conclusion Recipe 4: Add Controls to the Document Window Step 1: Add Controls to the Diary Window Step 2: Implement the Add Entry Push Button Step 3: Implement the Add Tag Push Button Step 4: Validate the Add Tag Push Button Step 5: Implement and Validate the Navigation Buttons Step 6: Implement and Validate the Date Picker Step 7: Implement and Validate the Search Field Step 8: Build and Run the Application Step 9: Save and Archive the Project Conclusion Recipe 5: Configure the Main Menu Step 1: Create the VRApplicationController Class Step 2: Add a Read Me Menu Item to the Help Menu Step 3: Add a Diary Menu to Control the Diary Window Step 4: Add a Diary Tag Search Menu Item to the Find Submenu Step 5: Add a Recipe Info Menu Item to Open the Recipes Window''s Drawer Step 6: Build and Run the Application Step 7: Save and Archive the Project Conclusion Recipe 6: Control the Document''s Behavior Step 1: Organize the Project''s Code Step 2: Limit the Application to a Single Diary Document Step 3: Add Error Handling to the Diary Document Step 4: Prepare Localizable Strings for Internationalization Step 5: Build and Run the Application Step 6: Save and Archive the Project Conclusion Recipe 7: Refine the Document''s Usability Step 1: Set the Minimum and Maximum Sizes of the Document Windows Step 2: Set the Initial Position and Size of the Document Windows Step 3: Set the Standard Zoom Size of the Document Windows Step 4: Autosave the Position and Size of the Document Windows Step 5: Autosave the Position of the Divider in the Diary Window Step 6: Autosave the Recipes Document''s Toolbar Configuration Step 7: Autosave the Diary Document''s Contents Step 8: Back Up the Diary Document Step 9: Implement the Revert to Saved Menu Item Step 10: Build and Run the Application Step 11: Save and Archive the Project Conclusion Recipe 8: Polish the Application Step 1: Add a Save As PDF Menu Item Step 2: Use Alternating Show Recipe Info and Hide Recipe Info Menu Items Step 3: Use a Dynamic Add Tag and Tag All Menu Item Step 4: Use a Dynamic Add Tag and Tag All Button Step 5: Use Blocks for Notifications Step 6: Add Help Tags Step 7: Add Accessibility Features Step 8: Provide a Default Diary Document Name Step 9: Add Support for Sudden Termination Step 10: Internationalize the Application''s Display Name Step 11: Add Application and Document Icons Step 12: Enable the Application to Run Under Leopard Step 13: Build and Run the Application Step 14: Save and Archive the Project Conclusion Recipe 9: Add Printing Support Step 1: Create a Print Panel Accessory View in Interface Builder Step 2: Create an Accessory View Controller in Xcode Step 3: Add the Accessory View Controller to the Print Panel Step 4: Save Custom Print Settings Step 5: Create a Print View to Print the Document''s Content Step 6: Print Custom Headers and Footers Step 7: Implement Print Scaling Step 8: Build and Run the Application Step 9: Save and Archive the Project Conclusion Recipe 10: Add a Preferences Window Step 1: Design and Build a Preferences Window in Interface Builder Step 2: Create a Preferences Window Controller in Xcode Step 3: Configure the General Tab View Item Step 4: Configure the Recipes Tab View Item Step 5: Configure the Chef''s Diary Tab View Item Step 6: Build and Run the Application Step 7: Save and Archive the Project Conclusion Recipe 11: Add Apple Help Step 1: Implement an HTML-Based Apple Help Bundle for Snow Leopard Step 2: Add Topic, Task, and Navigation Pages Step 3: Add an AppleScript Link to a Topic Page Step 4: Use the HelpViewer help: Protocol Step 5: Add Keywords and Abstracts Step 6: Add Help Buttons to Alerts, Dialogs, and Panels Step 7: Advanced Help Features Step 8: Implement a Help Book for Leopard and Earlier Step 9: Build and Run the Application Step 10: Save and Archive the Project Conclusion Recipe 12: Add AppleScript Support Step 1: Create a Terminology Dictionary and Add the Standard Suite Step 2: Add the Vermont Recipes Suite and Extend the Application Class With a New Property Step 3: Add a Diary Document Class and a Property in the Application to Access It Step 4: Add the Text Suite and a Document Text Property Step 5: Add a Diary Entry Class and an Element in the Diary Document to Access It Step 6: Add Properties to Get and Set Diary Entry Values Step 7: Add a Current Diary Entry Property to the Document Class Step 8: Support the Make Command for New Diary Entries Step 9: Support the Delete Command for Diary Entries Step 10: Add a Custom Verb-First Command-Sort Step 11: Add Custom Object-First Commands-Encrypt and Decrypt Step 12: Move Along Step 13: Build and Run the Application Step 14: Save and Archive the Project Conclusion Recipe 13: Deploy the Application Step 1: Build the Application for Release Step 2: Test the Application Step 3: Provide Documentation Step 4: Provide User Support Step 5: Distribute the Application Step 6: Promote the Application Conclusion Section 3: Looking Ahead Recipe 14: Add New Technologies Step 1: Switch to Properties Step 2: Switch to Cocoa Bindings Step 3: Switch to Garbage Collection Conclusion.
Cocoa Recipes for Mac OS X