| |
| Figure 2-1 New Project Panel | 2-4 |
| Figure 2-2 Project Window | 2-5 |
| Figure 2-3 Open Panel | 2-6 |
| Figure 2-4 Project Conversion Attention Panel | 2-7 |
| Figure 2-5 New Subproject Panel | 2-8 |
| Figure 2-6 Attributes Display | 2-8 |
| Figure 2-7 Project Name, Language, and Installation Directory | 2-9 |
| Figure 2-8 Information about the Main File | 2-9 |
| Figure 2-9 Application Icon Well | 2-10 |
| Figure 2-10 Document Icons and Extensions Well | 2-10 |
| Figure 2-11 System File Types List | 2-11 |
| Figure 2-12 Subproject Attribute Controls | 2-11 |
| Figure 2-13 Standalone Bundle Attribute Controls | 2-12 |
| Figure 2-14 Bundle Attribute Controls | 2-12 |
| Figure 2-15 Standalone Tool Attribute Controls | 2-13 |
| Figure 2-16 Tool Attribute Controls | 2-13 |
| |
| Figure 2-17 Palette Attribute Controls | 2-13 |
| Figure 2-18 Library Attribute Controls | 2-14 |
| Figure 2-19 Files Display in the Project Window | 2-15 |
| Figure 2-20 Builder Display in Project Window | 2-18 |
| Figure 2-21 Target Pop-up List | 2-19 |
| Figure 2-22 Options Button | 2-19 |
| Figure 2-23 Build Options Panel | 2-21 |
| Figure 2-24 Build Button | 2-22 |
| Figure 2-25 Warnings and Error Messages | 2-22 |
| Figure 2-26 Build Defaults Controls | 2-29 |
| Figure 2-27 Tools Controls | 2-30 |
| Figure 2-28 Sounds Controls | 2-31 |
| Figure 2-29 Build Service Controls | 2-31 |
| Figure 2-30 Save Options Controls | 2-31 |
| Figure 2-31 Run Button | 2-32 |
| Figure 2-32 Debug Button | 2-32 |
| Figure 3-1 Interface Builder and Your Application | 3-3 |
| Figure 3-2 Opening a Nib File in the Project Builder Window | 3-7 |
| Figure 3-3 Opening a Nib File in the Open Panel | 3-8 |
| Figure 3-4 The Palette Window | 3-9 |
| Figure 3-5 An Interface Window | 3-10 |
| Figure 3-6 The Nib File Window | 3-11 |
| Figure 3-7 Icon Mode of Instances Display | 3-12 |
| Figure 3-8 Outline Mode of Instances Display | 3-13 |
| Figure 3-9 Classes Display | 3-14 |
| |
| Figure 3-10 Images Display | 3-15 |
| Figure 3-11 Sounds Display | 3-17 |
| Figure 3-12 IDL Display | 3-18 |
| Figure 3-13 File's Owner Icon | 3-19 |
| Figure 3-14 First Responder Icon | 3-20 |
| Figure 3-15 The Inspector Panel | 3-21 |
| Figure 3-16 New Info Panel | 3-23 |
| Figure 3-17 Saving a Nib File | 3-24 |
| Figure 3-18 Archived Objects | 3-25 |
| Figure 3-19 Sounds and Images | 3-25 |
| Figure 3-20 Custom Class Information | 3-26 |
| Figure 3-21 Connection Information | 3-26 |
| Figure 3-22 The Menus Palette | 3-28 |
| Figure 3-23 The Views Palette | 3-29 |
| Figure 3-24 The TextViews Palette | 3-30 |
| Figure 3-25 The Windows Palette | 3-31 |
| Figure 3-26 Dragging an Object from a Palette to the Application Interface 3-32 |
| Figure 3-27 Placing an Interface Object | 3-33 |
| Figure 3-28 Putting a Panel in the Workspace | 3-34 |
| Figure 3-29 Putting NSViews and NSTextViews in aWindow | 3-35 |
| Figure 3-30 Putting a Menu Cell in the Application's Menu | 3-35 |
| Figure 3-31 Sizing a Window with the Resize Bar | 3-36 |
| Figure 3-32 Sizing a Window with the Size Display of the Inspector Panel 3-37 |
| Figure 3-33 Editing the Text on an NSButton (Switch) Object | 3-38 |
| Figure 3-34 Editing the Text on an NSMatrix Object | 3-39 |
| |
| Figure 3-35 Sizing an Interface Object with its Resize Handles | 3-40 |
| Figure 3-36 Sizing an Interface Object with the Inspector Panel | 3-41 |
| Figure 3-37 Selecting an Object to Duplicate | 3-42 |
| Figure 3-38 The New Object After Duplication | 3-43 |
| Figure 3-39 Moving an Object to Another Window | 3-44 |
| Figure 3-40 Using the Alignment Panel | 3-46 |
| Figure 3-41 Using the Radio Buttons in the Alignment Panel | 3-46 |
| Figure 3-42 Aligning Objects Using the Grid | 3-47 |
| Figure 3-43 Aligning Objects to the Grid | 3-47 |
| Figure 3-44 Making a Column of Objects | 3-48 |
| Figure 3-45 Deleting a Object from the Interface | 3-49 |
| Figure 3-46 Interface Builder's Coordinate System | 3-50 |
| Figure 3-47 Selecting Several Objects and a Reference Object | 3-53 |
| Figure 3-48 The Objects Become the Same Size as the Reference Object | 3-54 |
| Figure 3-49 Sizing an NSView Object to Fit the Text It Contains | 3-55 |
| Figure 3-50 Selecting Objects and Using the Group Command | 3-56 |
| Figure 3-51 Using an NSBox Object to Group Objects | 3-56 |
| Figure 3-52 Layering Buttons in Front of an NSScrollView Object | 3-58 |
| Figure 3-53 Creating a Matrix of Radio Buttons | 3-59 |
| Figure 3-54 Adding a Menu Cell to the Application's Main Menu | 3-60 |
| Figure 3-55 Resequencing Menu Cells | 3-61 |
| Figure 3-56 Assigning a Command Key Equivalent | 3-62 |
| Figure 3-57 Using the Submenu Cell to Create a Custom Submenu | 3-62 |
| Figure 3-58 Attributes Display of NSButton Inspector | 3-64 |
| Figure 3-59 Selecting an Object in the Instances Display | 3-66 |
| |
| Figure 3-60 Attributes Display for a Custom Class | 3-67 |
| Figure 3-61 Attributes Display for Windows and Panels | 3-68 |
| Figure 3-62 Window Controls | 3-69 |
| Figure 3-63 NSButton Attributes Display | 3-72 |
| Figure 3-64 Associating an Image with a Button | 3-75 |
| Figure 3-65 Associating a Sound with a Button | 3-76 |
| Figure 3-66 NSButton Attributes that Relate to Sounds or Images | 3-77 |
| Figure 3-67 Adding a Sound or Image to a Nib File | 3-79 |
| Figure 3-68 Inspecting Sound Attributes | 3-80 |
| Figure 3-69 Inspecting Image Attributes | 3-81 |
| Figure 3-70 Setting NSTextField Attributes | 3-82 |
| Figure 3-71 Setting NSScrollView Attributes | 3-83 |
| Figure 3-72 Setting the Attributes of Text | 3-84 |
| Figure 3-73 Font Panel | 3-85 |
| Figure 3-74 Setting NSBox Attributes | 3-86 |
| Figure 3-75 Setting NSBrowser Attributes | 3-88 |
| Figure 3-76 Setting NSPopUpButton Attributes | 3-90 |
| Figure 3-77 Pop-up List's Trigger Button and Menu Cells | 3-91 |
| Figure 3-78 NSScrollView | 3-93 |
| Figure 3-79 NSBrowser | 3-94 |
| Figure 3-80 NSPopUpButton | 3-94 |
| Figure 3-81 Setting NSMatrix Attributes | 3-95 |
| Figure 3-82 Cell Prototype Inspector | 3-97 |
| Figure 3-83 Size Inspector | 3-99 |
| Figure 3-84 Effects of Lines Inside and Outside the Autosizing Box | 3-100 |
| |
| Figure 3-85 Specifying a Minimum Size for a Window | 3-101 |
| Figure 3-86 Resizing Example | 3-102 |
| Figure 3-87 Object A Resizes, Object B Does Not | 3-103 |
| Figure 3-88 Both Object A and Object B Resize | 3-103 |
| Figure 3-89 Original and Resized Windows | 3-104 |
| Figure 3-90 Minimum Size Set for Window | 3-105 |
| Figure 3-91 Autosizing Behavior Set for Box | 3-105 |
| Figure 3-92 Autosizing Behavior Set for Button | 3-106 |
| Figure 3-93 Autosizing Behavior Set for Custom View | 3-106 |
| Figure 3-94 Specifying a Tag Integer for an Object | 3-108 |
| Figure 3-95 Outlet | 3-110 |
| Figure 3-96 Action | 3-112 |
| Figure 3-97 Connecting Two Objects | 3-114 |
| Figure 3-98 Inspecting an Outlet Connection | 3-115 |
| Figure 3-99 Connecting Objects in the Instances Display | 3-116 |
| Figure 3-100 Making an Action Connection | 3-117 |
| Figure 3-101 Inspecting an Action Connection | 3-118 |
| Figure 3-102 Connecting Objects within an Interface | 3-119 |
| Figure 3-103 Connecting an Object in the Outline with an Object in the Interface | 3-120 |
| Figure 3-104 Displaying the Possible Connections | 3-121 |
| Figure 3-105 Making a Connection within the Nib FileWindow | 3-122 |
| Figure 3-106 Displaying the Outlets and Actions Associated with an Interface Object | 3-123 |
| Figure 3-107 Examining a Connection through the Inspector Panel Connections Display | 3-124 |
| |
| Figure 3-108 Checking Connections in the Instances Display | 3-125 |
| Figure 3-109 Looking at Connections Out in the Instances Display | 3-126 |
| Figure 3-110 Looking at Connections In in the Instances Display | 3-126 |
| Figure 3-111 Displaying an Image Representing the Object Selected in the Outline | 3-127 |
| Figure 3-112 Locating the Object in the Interface with an Arrow | 3-128 |
| Figure 3-113 Connecting Two NSForm Objects | 3-129 |
| Figure 3-114 Making the Connection in the Inspector Panel | 3-130 |
| Figure 3-115 Disconnecting Objects Using the Inspector Panel | 3-131 |
| Figure 3-116 Disconnecting Object in the Instances Display | 3-132 |
| Figure 3-117 Help Builder Panel | 3-133 |
| Figure 3-118 Help Display | 3-135 |
| Figure 3-119 Exiting Test Mode | 3-137 |
| Class or NSView Root Class or NSView | 3-139 |
| Figure 3-121 Flowchart for Integrating an Existing Class into an Application | 3-140 |
| Figure 3-122 Selecting and Subclassing a Superclass | 3-141 |
| Figure 3-123 Naming the New Class | 3-142 |
| Figure 3-124 Classes Display | 3-143 |
| Figure 3-125 Accessing the Outlets of a Class | 3-144 |
| Figure 3-126 Naming a New Outlet | 3-145 |
| Figure 3-127 Accessing the Actions of a Class | 3-146 |
| Figure 3-128 Naming a New Action | 3-146 |
| Figure 3-129 Instantiating a Custom Class | 3-148 |
| Figure 3-130 The New Instance in the Instances Display | 3-149 |
| |
| Figure 3-131 Connecting an Outlet | 3-150 |
| Figure 3-132 Specifying the Outlet Identifier | 3-151 |
| Figure 3-133 Connecting an NSControl Object | 3-152 |
| Figure 3-134 Selecting the Action Method | 3-153 |
| Figure 3-135 Unparsing the Nib File | 3-154 |
| Figure 3-136 Unparse Attention Panel | 3-155 |
| Figure 3-137 Making Your Class a Delegate | 3-157 |
| Figure 3-138 An NSView Custom Class | 3-159 |
| Figure 3-139 Making an Instance of an NSView Subclass | 3-160 |
| Figure 3-140 Assigning a Class Name to your NSView Object | 3-161 |
| Figure 3-141 Dragging a Header File into Your Nib File | 3-162 |
| Figure 3-142 Updating the Nib File | 3-163 |
| Figure 3-143 Selecting the Class Definition to Update | 3-164 |
| Figure 3-144 Parse IDL Button (IDL Display) | 3-165 |
| Figure 3-145 Make Template Object Button (IDL Display) | 3-165 |
| Figure 3-146 Interface Builder's General Preferences Panel | 3-168 |
| Figure 3-147 Interface Builder's Palettes Preferences Panel | 3-169 |
| Figure 4-1 Edit Preferences Panel | 4-3 |
| Figure 4-2 Options Pop-up List | 4-4 |
| Figure 4-3 Edit Start-up Options | 4-4 |
| Figure 4-4 New Document Format Options | 4-5 |
| Figure 4-5 RTF Default Font | 4-5 |
| Figure 4-6 ASCII Default Font | 4-6 |
| Figure 4-7 Save Options | 4-6 |
| Figure 4-8 Default Window Size Options | 4-7 |
| |
| Figure 4-9 Emacs Key Bindings Options | 4-7 |
| Figure 4-10 Line Wrap Options | 4-8 |
| Figure 4-11 Rich Text Display Options | 4-8 |
| Figure 4-12 Automatic Indenting Options | 4-9 |
| Figure 4-13 Structure Level of Blank Lines in Text Options | 4-9 |
| Figure 4-14 Alignment Options | 4-10 |
| Figure 4-15 Open at Structure Level Options | 4-10 |
| Figure 4-16 Editing Modes File Extensions | 4-10 |
| Figure 4-17 Structure for Top Level Options | 4-11 |
| Figure 4-18 Structure of Blank Lines in C Code Options | 4-11 |
| Figure 4-19 Tags Path | 4-12 |
| Figure 4-20 Include Path | 4-13 |
| Figure 4-21 File Window with Only First-Level Text Expanded | 4-15 |
| Figure 4-22 File Window with Some Second-Level Text Expanded | 4-16 |
| Figure 4-23 File Window with Some Third-Level Text Expanded | 4-17 |
| Figure 4-24 Expansion Dictionary Panel | 4-19 |
| Figure 4-25 Add Button | 4-20 |
| Figure 4-26 Remove Button | 4-20 |
| Figure 5-1 New Document Panel | 5-2 |
| Figure 5-2 Tools Panel | 5-4 |
| Figure 5-3 The Brush Tool | 5-5 |
| Figure 5-4 The Line Tool | 5-5 |
| Figure 5-5 The Oval Tool | 5-5 |
| Figure 5-6 The PaintBucket Tool | 5-6 |
| Figure 5-7 The Pencil Tool | 5-6 |
| |
| Figure 5-8 The Rectangle Tool | 5-6 |
| Figure 5-9 The Selection Tool | 5-7 |
| Figure 5-10 The Text Tool | 5-7 |
| Figure 5-11 The Brush Inspector | 5-8 |
| Figure 5-12 The Line Inspector | 5-9 |
| Figure 5-13 The Oval Inspector | 5-10 |
| Figure 5-14 The Pencil Inspector | 5-11 |
| Figure 5-15 The Rectangle Inspector | 5-12 |
| Figure 5-16 The Selection Inspector | 5-13 |
| Figure 5-17 Flip Filter Attributes | 5-13 |
| Figure 5-18 Rotate Filter Attributes | 5-14 |
| Figure 5-19 Revert and Apply Buttons | 5-14 |
| Figure 5-20 The TextTool Inspector | 5-15 |
| Figure 5-21 The ObeseBits Panel | 5-16 |
| Figure 6-1 Header Viewer's Browser View | 6-6 |
| Figure 6-2 Removing a Header File | 6-7 |
| Figure 6-3 Selecting Direct Headers or All Headers in a Header Hierarchy | 6-8 |
| Figure 6-4 Choosing Display in a Class Hierarchy | 6-9 |
| Figure 6-5 Header Viewer's Finder View | 6-10 |
| Figure 6-6 Find Results List | 6-11 |
| Figure 6-7 Selecting Find Control Options | 6-12 |
| Figure 6-8 Header Viewer's Find in Viewer Panel | 6-13 |
| Figure 6-9 Header Viewer Preferences Panel | 6-14 |
| Figure 6-10 Documentation Directories Panel | 6-15 |
| Figure 6-11 Other Options Panel | 6-16 |
| |
| Figure 8-1 Some NSMatrix Objects | 8-2 |
| Figure 8-2 Some Application Kit Classes | 8-9 |
| Figure 8-3 Inheritance Hierarchy for Cells | 8-17 |
| Figure 8-4 The Scope of Instance Variables | 8-29 |
| Figure 8-5 Messaging Framework | 8-33 |
| Figure 8-6 High, Mid, and Low | 8-41 |
| Figure 9-1 Remote Messages | 9¬17 |
| Figure 9-2 Round-Trip Message | 9¬19 |