Index

Symbols

#import <Cocoa/Cocoa.h\> statement, Tiny.m Revisited
#import directive, The #import Directive
+ (plus sign), in method names, The +alloc Method and the NSObject Root Class
+alloc class method, The +alloc Method and the NSObject Root Class
+initialize method, Adding Defaults to GraphPaper
+standardUserDefaults method, The NSUserDefaults Class, Reading Values from the Defaults Database
.m file extension, The Tiny.m Program
/* and */, as comment delimiter, Tiny.m Revisited
// (double forward slash), as comment delimiter, Tiny.m Revisited
<\> (angle brackets), Implementing the Display List
@end directive, The @implementation Directive, Implementing the Display List
@implementation directive, The @implementation Directive, The @implementation Directive
@interface directive, The @interface Directive
@protocol directive, Implementing the Display List
[ ] (square brackets), Objects and Classes
[[sender selectedCell] tag] message, The enterDigit: Action Method
: (colon, in Objective-C messages), Targets, Actions, and Connections
\\ (backslash), Rich Text Syntax, RTF Control Words and Symbols
\| (pipe), Working in a Unix Shell, Step by Step
{ } (curly braces), Rich Text Syntax
{\\rtf0 and {\\rtf1, RTF Control Words and Symbols

A

About box, Changing the Strings in the About Box
application icon, adding to, Making the New Icon Appear in the About Box
customizing, Modifying the Main Calculator Nib
aboutPanel outlet, Modifying the Controller Class
AboutPanel.nib file, Creating the About Box Nib, Creating the About Box Nib
icon activation, Making the New Icon Appear in the About Box
abstract superclass, Views, Responders and the NSResponder Chain
acceptsFirstMouse: method, Mouse Event Handling, Being a Drag-and-Drop Source
acceptsFirstResponder message, An Event-Handling Example Using TextEdit
acceptsMouseMovedEvents flag, Accepting Mouse-Moved Events
accessor methods, A Simple Class Example
rules for use, autorelease and the NSAutoreleasePool Class
accessory views, Creating an Accessory NSView
action buttons, Buttons
action methods
Controller class, adding to, Modifying the Controller Class
declaration, Using IB’s Read Files Commandwith a New Action Method
actions, Targets, Actions, and Connections, Targets, Actions, and Connections, Adding Actions to the Controller
active application, A Quick Look at the Mac OS X User Interface, Window Menu, Working with Files
active window, A Quick Look at the Mac OS X User Interface
ADC (Apple Developer Connection), Apple Developer Connection
addAnnotation: method, Changes to the TrackingGraphView Class Files
addAxesFrom:to: method, Adding Axes
addBufToGraph: method, The Graph Displayer
adder.m file, NSString, NSMutableString, and NSLog
addGraphElement: method, Implementing the Display List, The Graph Displayer, The ColorGraphView Class Implementation
additive color models, Colors and Color Objects
addTrackingRect:owner:userData:assumeInside: method, Mouse Event Handling
addWindowController: method, MathDocument Class Modifications
administrator (or root) processes, viewing, Seeing All the Processes
Adobe PostScript, Saving to PDF
AIFF files, opening, Getting Information About Files
alerts, Alerts
alloc method, Creating and Initializing Objects
rules for use, autorelease and the NSAutoreleasePool Class
alpha (transparency), Colors and Color Objects
ancestorSharedWithView: method, The NSView Hierarchy
angle brackets (<\>), Implementing the Display List
angle changes, fonts in RTF, Using TextEdit to Explore RTF
animation, Timers
.app file extension, Building the Calculator’s User Interface
app wrapper, Building the Calculator’s User Interface
app.icns file, Viewing Icons with the icns Browser Application
appendRTFData: method, Integrating Our RTF Class into MathPaper
appendString: method, Adding a Method Using a Category
AppIcon.icns file, Creating Application Icon Files with IconComposer
AppKit, What Makes Mac OS X So Special?
delegates, classes that support, Specifying an Object’s Delegate
document-based architecture, Cocoa’s Document-Based Architecture
important classes, Tiny.m Revisited
Apple Developer Connection (ADC), Apple Developer Connection
Apple Foundation library, The Foundation Classes
Apple menu, Menus and the Menu Bar
Application Kit (see AppKit)
applicationDidFinishLaunching: message, Should, Will, and Did Delegates, Adding the Delegate Method to the Controller
services, registration, Changes to Controller
applications
icons, A Quick Look at the Mac OS X User Interface
adding to, Adding Icons to Applications, Making the New Icon Appear in the About Box
images, adding to, Making the New Icon Appear in the About Box
Interface Builder, development with, Interface Builder
interfaces and Aqua, Basic Principles of the Aqua Interface
menus, Menus and the Menu Bar, Application Menu
modal alerts, Alerts
objects, adding to, Adding Objects to Your Application, Inspecting and Changing Your Button’s Attributes
applicationShouldTerminate: message, Should, Will, and Did Delegates
application:openFile: message, An Event-Handling Example Using TextEdit
Aqua, Preface, Understanding theAqua Interface
application interfaces and, Basic Principles of the Aqua Interface
interface standard, Adding a Zoom Button to GraphPaper
mice and, Consistent Aqua, Mouse Action Paradigms
AT&T Bell Labs, Unix
autorelease message, autorelease and the NSAutoreleasePool Class, MathDocument Class Modifications
rules for use, autorelease and the NSAutoreleasePool Class
autorelease pool, autorelease and the NSAutoreleasePool Class
autosizing, Modifying the Calculator’s Interface, Autosizing Multiple Views in a Window, Autosizing Multiple Views in a Window, Autosizing in GraphPaper
Controller class, modification of, Modifying the Controller Class
position selection, Modifying the Calculator’s Interface
auxiliary nibs, Managing Multiple Nibs
availableTypeFromArray: method, Providing Data to the Pasteboard
awakeFromNib method, Modifying the Controller Class, Putting It All Together, PrefController Class Implementation, Changes to ZoomScrollView, Reading Values from the Defaults Database

C

Calculator application, Building a Project: A Four-Function Calculator, Exercises
About box, Changing the Strings in the About Box
AboutPanel.nib file, Creating the About Box Nib, Creating the About Box Nib
calculator functions, adding, Adding the Four Calculator Functions
CalcWindow class, Subclassing the NSWindow Class, Implementing the CalcWindow Class, Finishing off the CalcWindow class implementation
compiling and running, Compiling and Running a Program, Compiler Error Messages
Controller class, Building the Calculator’s Controller Class
design, Designing the Controller Class
keyboard event captures, enabling, Changes in the Controller Class
specification as delegate, Specifying an Object’s Delegate
controls, adding, Adding Controls in a Window
enumerated data type, Adding the Four Calculator Functions
generated files, Other PB-Generated Files
hexadecimal operations, Resizing Windows Programmatically
icons, adding, Adding Icons to Applications, Making the New Icon Appear in the About Box
icon activation, Changing Calculator’s Application Icon
interface, modifying, Modifying the Calculator’s Interface
keyboard events, catching, Catching Keyboard Eventsfor Our Calculator, Changes in the Controller Class
main( ) function, The main.m Program File Generated by PB
MainMenu.nib file, modifying, Modifying the Main Calculator Nib
menu configuration, Nibs and Icons, Creating the About Box Nib
multiple base capabilities, adding, Handling Different Bases, Modifying the Controller Class
keypad buttons, disabling, Disabling Buttons for BetterMultiradix Input, Accessing NSMatrix Cells with an NSArray Object
unary minus function, Adding the Unary Minus Function to the Controller Class
window customization, Customizing the Main Window
CalcWindow class, Subclassing the NSWindow Class, Implementing the CalcWindow Class, Finishing off the CalcWindow class implementation
button search methods, Methods for searching for button titles
dealloc method, Finishing off the CalcWindow class implementation
implementing, Implementing the CalcWindow Class
keyDown: method, Finishing off the CalcWindow class implementation
“Can’t create new document” alert, Testing MathPaper’s Document-Based Architecture
canBecomeKeyWindow message, An Event-Handling Example Using TextEdit
Carbon, The Toolbox, Carbon, and Cocoa
using to inspect defaults, Reading Values from the Defaults Database
carriage returns in RTF (Rich Text Format), RTF Control Words and Symbols
case-sensitivity, Working with Folders, Working in a Unix Shell, Step by Step
categories, Adding the Delegate Method to the Controller
adding methods to classes, Adding a Method Using a Category
cells message, Accessing NSMatrix Cells with an NSArray Object
cells, controls and, Adding Controls in a Window
NSCell objects, Adding Controls in a Window
central processing unit (CPU), Mach
CFStringRef, Reading Values from the Defaults Database
change count flag, Marking a Document Window as Edited
changeZoom: method, Changes to MainMenu.nib, Changes to ZoomScrollView
checkboxes, Radio buttons and checkboxes
checkButton: method, Methods for searching for button titles
checkMatrix: method, Methods for searching for button titles
checkView: method, Methods for searching for button titles
Circle class, A Simple Class Example
class interface, The @interface Directive
class methods, The +alloc Method and the NSObject Root Class
classes, Objects and Classes, Objects and Classes
(see also entries under individual classes)
adoption of protocols, Implementing the Display List
example, A Simple Class Example
switching between .h and .m files, Adding the Four Calculator Functions
Classic mode, Mac OS X and Classic Mode
clear method, Implementing the Display List
click-to-focus, The Finder’s Viewing Options
CMYK color model, Colors and Color Objects
Cocoa, Cocoa and Mac OS X, What Makes Mac OS X So Special?, The Toolbox, Carbon, and Cocoa
autosizing system, Modifying the Calculator’s Interface
bug reporting, Bug Reporting
dictionaries, Dictionaries, Dictionaries
documentation, type conventions, Should, Will, and Did Delegates
headers, precompilation, Tiny.m Revisited
history, Object-Oriented Programming
integrated development environment, Project Builder
Java and, Cocoa, Objective-C, and Java
locking classes, Locking with NSLock
mailing lists, Mailing Lists
memory management, ObjectAlloc
multithreaded environment, limitations of, Locking with NSLock
notification system, Modifying the Controller Class, Creating PaperController, a Subclass of NSWindowController, Getting Data from Evaluator, Putting It All Together
object classes, Objects and Classes
online documentation, Online Documentation
pasteboard data types, Providing Data to the Pasteboard
programs, compiling, Compiling and Running a Program, Compiler Error Messages
scrolling, Timers
versions, Cocoa Versions
web sites, Web Sites
Cocoa developer documentation, Giving Proper Titles to MathPaper Windows
Cocoa-Containers palette, Creating the MathAnimation View
Cocoa-Data palette, Setting Up PaperWindow.nib, The NSScrollView and NSTextView Classes
Cocoa-Menus palette, Getting Started with Interface Builder, Handling Different Bases, The MainMenu.nib File, Changes to MainMenu.nib
Cocoa-Other palette, Getting Started with Interface Builder, Targets, Actions, and Connections, Making the New Icon Appear in the About Box, Handling Different Bases
Cocoa-Views palette, Adding a Button Object to Your Window, Adding Controls in a Window, Creating the About Box Nib, Building GraphPaper’s Interface
Cocoa-Windows palette, Creating the About Box Nib, Implementing the About Panel in MathPaper
coherence, Coherence in Object-Oriented Programming
colon (:), use in Objective-C messages, Targets, Actions, and Connections
color, Colors and Color Objects
programming, Colors from a Programmer’s Point of View
color chip, Colors from a User’s Point of View
color methods, Setting Colors, Drawing Rectangles, and Drawing Lines, Setting Colors, Drawing Rectangles, and Drawing Lines
color spaces, Colors and Color Objects
color well, Color Wells and Image Wells
colorForTag: method, ColorGraphView, The ColorGraphView Class Implementation
ColorGraphView class, Adding Color to GraphPaper, ColorGraphView, The ColorGraphView Class Implementation
defaults and, Adding Defaults to GraphPaper
registering, Registering the Default Values
drag-and-drop modifications, Being a Drag-and-Drop Receiver
implementation, The ColorGraphView Class Implementation
TrackingGraphView subclass, Changes to the GraphPaper Interface
Colors panel, Colors from a User’s Point of View
color model, selection, Colors from a User’s Point of View
ColorWeb Pro, Colors and Color Objects
colorWellForTag: method, PrefController Class Implementation
combination boxes, Pop-up Menus, Command Pop-down Menus, and Combination Boxes
Command key, Menus and the Menu Bar
command pop-down menus, Pop-up Menus, Command Pop-down Menus, and Combination Boxes
Command-Option-up-arrow key combination, Adding the Four Calculator Functions
commenting, Tiny.m Revisited
compiling programs, Compiling and Running a Program, Compiler Error Messages
error messages, Compiler Error Messages
from Project Builder, Compiling and Running a Program from PB
in Terminal shell window, Compiling and Running a Program from PB
compositeToPoint:operation method, Drawing Images with Quartz
compositing, Drawing Images with Quartz
common operations, Drawing Images with Quartz
compositing operator, Drawing Images with Quartz
computational engine, Building the Calculator’s Controller Class
connections, Outlets and Connections, Making the Connections
mouse usage, Making the Connections
outlet connections, Making the Connections
Connector class, The @interface Directive, Destroying Objects
Console, Utilities
content views, Views, The NSWindow Class, Responders and the NSResponder Chain
control objects, Targets, Actions, and Connections, Targets, Actions, and Connections
Control Panels system, Mac OS X replacement for, System Preferences
control symbol, Rich Text Syntax
Controller class, Building the Calculator’s Controller Class
action methods, adding to, Adding the Unary Minus Function to the Controller Class
autosizing, modification for, Modifying the Controller Class
Controller class files, creating, Creating the Controller Class Files
delegate, specifying as, Specifying an Object’s Delegate
design, Designing the Controller Class
instantiating, Instantiating (Creating an Instance of) the Controller Class
outlets and actions, adding new, Modifying the Controller Class
service, registering as, Changes to Controller
Controller.m file, Adding the Delegate Method to the Controller
displayX method, Modifying the Controller Class
setRadix: method, Modifying the Controller Class
controls, cells and, Adding Controls in a Window
NSCell objects, Adding Controls in a Window
NSControl objects, Adding Controls in a Window
convenience graphics functions, Quartz Graphics Data Types
copyToPasteboard: method, Using the Pasteboard in GraphPaper
copy: method, Providing Data to the Pasteboard, Using the Pasteboard in GraphPaper
Core Foundation framework, inspecting defaults with, Reading Values from the Defaults Database
cover (NSPopUpButton), Changes to MainMenu.nib
Cox, Brad, Objects, Messages, and Targets
CPU (central processing unit), Mach
creator codes, Customizing the Document-Based Project Information in PB, Saving to a File
registering, Registering Creator Codes
crosshair cursor, Cursors
curly braces ({ }), Rich Text Syntax
cursors, Cursors
conveying information through movement, Tracking the Mouse
cut, copy, and paste system, Cut, Copy, and Paste with the Pasteboard, Testing GraphPaper’s Copy and Cut Commands
cutting data, Implementing the Cut Command
cut: method, Objects, Messages, and Targets, Action Messages and the NSResponder Chain, Providing Data to the Pasteboard

D

daemon system user, Usernames and UIDs
Darwin, Unix, Mach, and the Mac OS X Environment
data encapsulation, Objects and Classes
data stuffer methods, The Data Stuffer Methods
data-storage objects, Dictionaries
dataForType: method, Providing Data to the Pasteboard, Providing Data Through Lazy Evaluation
dataRepresentationOfType: method, Writing the Save Methods
dataUsingEncoding:allowLossyConversion: method, Creating the NSTextView Delegate
dataWithEPSInsideRect: method, Producing PDFs from NSView
dataWithPDFInsideRect: method, Producing PDFs from NSView
deadlock conditions, Unix Pipes and Evaluator
dealloc message, Destroying Objects
dealloc method, Destroying Objects, Finishing off the CalcWindow class implementation
rules for use, autorelease and the NSAutoreleasePool Class
debugging programs (see gdb)
declarations, overridden methods, BarView: An NSView with a Scaled Coordinate System
declareTypes:owner: method, Providing Data to the Pasteboard, Using the Pasteboard in GraphPaper
defaults command, Accessing the Defaults Database in a Terminal
defaults database, The Defaults System, Preferences and Defaults
ASCII text requirement, Accessing the Defaults Database with PropertyListEditor
GraphPaper, using with, Adding Defaults to GraphPaper, Reading Values from the Defaults Database
NSUserDefaults class, The NSUserDefaults Class
PropertyListEditor, accessing with, Accessing the Defaults Database with PropertyListEditor
Terminal, accessing with, Accessing the Defaults Database in a Terminal
defaults domains, Defaults Domains
standard domains, Standard defaults domains
defaults.h file, Adding Defaults to GraphPaper
delegate messages, preparing to receive, Adding the Delegate Method to the Controller
delegates, Delegation
outlet instance variable for, Specifying an Object’s Delegate
Should, Will, and Did messages, Should, Will, and Did Delegates, Should, Will, and Did Delegates
delegation, Delegation and Resizing, Modifying the Controller Class, Adding the Delegate Method to the Controller
subclassing, compared to, Should, Will, and Did Delegates
designated initializer, Finishing off the CalcWindow class implementation
desktop, A Quick Look at the Mac OS X User Interface
configuration, Configuring Your Desktop, Step by Step
destination image, Drawing Images with Quartz
destroying objects, Destroying Objects
developer tools, Developer Tools, Utilities
Console, Utilities
icns Browser, IconComposer and the icns Browser, Viewing Icons with the icns Browser Application
IconComposer, IconComposer and the icns Browser, Creating Application Icon Files with IconComposer
Interface Builder (see IB)
ObjectAlloc, ObjectAlloc
ProcessViewer, Utilities, Seeing All the Processes
Project Builder (see PB)
PropertyListEditor, PropertyListEditor, The Defaults System, Accessing the Defaults Database in a Terminal
Terminal, Working with the Terminal, The Mac OS X Terminal Application, The Defaults System
dialogs, A Quick Look at the Mac OS X User Interface, Dialogs, Dialogs
Info dialogs, Info Dialogs
dictionaries, Dictionaries, Dictionaries
Did messages, Should, Will, and Did Delegates
examples, Should, Will, and Did Delegates
direct manipulation mouse action paradigm, Mouse Action Paradigms
directories, hidden, Debugging Programs with gdb
disabled buttons, Accessing NSMatrix Cells with an NSArray Object
disclosure triangles, Menus and the Menu Bar, Disclosure Triangles, The Files in a Project
display lists, Connecting to the Back End, Implementing the Display List
advantages, Why Use a Display List?
extending, Extending the Display List
implementing, Implementing the Display List, Implementing the Display List
display method, Controlling Display and Redisplay
displayIfNeeded method, Controlling Display and Redisplay
displayRect: method, Controlling Display and Redisplay
displayX method, Modifying the Controller Class
docEdited flag, Marking a Document Window as Edited
Dock, A Quick Look at the Mac OS X User Interface, The Dock, The Dock, Working with the Dock
document modal alerts, Alerts
document modal dialogs, Dialogs
document windows, Document Windows
document-based architecture, The MathPaper Application
PB, customizing in, Customizing the Document-Based Project Information in PB, Customizing the Document-Based Project Information in PB
provided functionality, Cocoa’s Document-Based Architecture
docViews, The NSScrollView Class Revisited
domains, Preferences and the Defaults Database System
doStop: method, The Data Stuffer Methods
double forward slash (//), as comment delimiter, Tiny.m Revisited
double-triangle indicator, Pop-up Menus, Command Pop-down Menus, and Combination Boxes
doUnaryMinus: method, Using IB’s Read Files Commandwith a New Action Method
drag-and-drop, Drag-and-Drop, Being a Drag-and-Drop Receiver
file operations, Moving and Copying Files
GraphPaper, Drag-and-Drop, Being a Drag-and-Drop Receiver
enabling as source, Being a Drag-and-Drop Source
as receiver of colors, Being a Drag-and-Drop Receiver
as receiver of text, Being a Drag-and-Drop Receiver
pasteboard interrogation, Being a Drag-and-Drop Receiver
receiving events, Being a Drag-and-Drop Receiver
dragging, The Mouse and Cursor, Timers
draggingEntered: method, Being a Drag-and-Drop Receiver
draggingSourceOperationMaskForLocal: method, Being a Drag-and-Drop Source
draggingUpdated: method, Being a Drag-and-Drop Receiver
dragImage:at:offset:event:pasteboard:source:slideBack: method, Being a Drag-and-Drop Source
drawAtPoint: method, Drawing Text with Quartz
drawInRect:withAttributes: method, Drawing Text with Quartz
drawRect: method
of GraphView class, Implementing the Display List
drawRect: method, Drawing with Quartz Inside a View Object, Adding Printing Capability, Drawing in an NSView with Quartz, The Advantages of NSView’s drawRect: Method, BlackView: An NSView That Paints Itself Black, PolygonView: A Non-Opaque NSView, Getting a Mouse-Down Event
About panel animation, Drawing in an NSView with Quartz
advantages, The Advantages of NSView’s drawRect: Method
drawing text, Drawing Text with Quartz
invocation, The Advantages of NSView’s drawRect: Method
mouse-down event, editing for, Getting a Mouse-Down Event
drawSelf message, A Simple Class Example
dynamic binding, Objects, Messages, and Targets, The id Data Type

E

Easter egg, Adding an Easter Egg
Edit menu, Edit Menu
ellipsis, Menus and the Menu Bar
Emacs, The Tiny.m Program
enabled buttons, Accessing NSMatrix Cells with an NSArray Object
Encapsulated PostScript (EPS), Saving to PDF
encapsulation, Objects and Classes
encodeWithCoder: method, Archiving MathPaper Documents
end method, The @interface Directive
engineering workstations, Unix
enterDigit: method, Adding Actions to the Controller, Setting Up Tags and Titles for the Keypad Buttons, The enterDigit: Action Method
multi-base calculator, modification for, Disabling Buttons for BetterMultiradix Input
enterFlag instance variable, The enterDigit: Action Method
enterOp: method, Adding Actions to the Controller, Adding the Four Calculator Functions
Enterprise Objects Framework and Java, Cocoa, Objective-C, and Java
EPS (Encapsulated PostScript), Saving to PDF
Evaluator, The MathPaper Application, The Evaluator Back End, Building the Back End
completed processes, killing, Killing the Evaluator Processes
GraphPaper, use in, Connecting to the Back End
Makefile, creating, Building the Back End, Building the Back End
rules.l file, Building the Back End
source, adding to MathPaper, Making Evaluator a MathPaper Auxiliary Executable, Making Evaluator a MathPaper Auxiliary Executable
event handlers, Adding Actions to the Controller
event loops, Tiny.m Revisited, The Main Event Loop
events, The Mouse and Cursor, What Is an Event?
event-handling example, An Event-Handling Example Using TextEdit
event-handling methods, The NSEvent Object
keyboard event handling, Keyboard Event Handling
mouse event handling, Mouse Event Handling
NSApplication and, Events and the NSApplication Object
NSResponder methods, The NSEvent Object
types of, Events and the NSResponder Chain
execv( ) function, Processes, Pipes, and Resources

F

factory methods, Objects and Classes, Creating and Initializing Objects
fast saves, Memory to Disk and Back
field editor, The NSScrollView and NSTextView Classes
file extensions, Saving to a File
common Mac OS X extensions, Saving to a File
file handles, Working with Multiple Threads
File menu, File Menu
file types
codes, Customizing the Document-Based Project Information in PB
file wrappers, Writing the Save Methods
files, Working with Files
copying and moving, Moving and Copying Files
loading from, Loading from a File, Loading from a File
privileges, setting, Getting Information About Files
saving, Saving to a File, Advanced Save Panel Options
viewing information, Getting Information About Files
filesystem management, Working with the Filesystem,Step by Step, Filling and Emptying the Trash
fileWrapperRepresentationOfType: method, Writing the Save Methods
filter services, Cocoa’s NSImage Class
Find submenu, Find Submenu
findButtons method, Methods for searching for button titles
Finder, What Makes Mac OS X So Special?, The Finder , Finder Preferences
Finder window, The Finder Window
“Happy Mac” icon, A Quick Look at the Mac OS X User Interface
hidden directories, Debugging Programs with gdb
menu commands and operations, Working with the Filesystem,Step by Step, Filling and Emptying the Trash
menu structure, The Menu Structure
preferences, setting, Finder Preferences
toolbar, The Toolbar
utility windows and dialogs, Support Windows and Dialogs
viewing options, The Finder’s Viewing Options
First Responder, Getting Started with Interface Builder, Using the Pasteboard in GraphPaper
icon, Writing the Save Methods
responding objects, Writing the Save Methods
firstResponder id pointer, Responders and the NSResponder Chain
flipping views, Flipping
folders, A Quick Look at the Mac OS X User Interface, Working with Folders
Font submenu, Format and Font Menus
fontDemo: method, Formatting NSTextView Output
fonts (Rich Text), Using TextEdit to Explore RTF
fontWithName:size: method, Drawing Text with Quartz
Force Quit Applications utility, Forcing an Application to Quit
fork( ) function, Processes, Pipes, and Resources
forking of processes, Processes, PIDs, and UIDs
formal protocol, Implementing the Display List
Format menu, Format and Font Menus
formatBox outlet, Creating an Accessory NSView
formatMatrix outlet, Creating an Accessory NSView
Foundation classes, The Foundation Classes, Accessing NSMatrix Cells with an NSArray Object
frame instance variable, Rethinking MathDocument and PaperController
frame method, NSView Coordinate Systems
FrameChangedNotification, The NSView Hierarchy
frameRotation method, NSView Coordinate Systems
“Frankenstein switch” icon, Adding a Button Object to Your Window
functions, in class implementation files, Modifying the Controller Class

G

gdb (GNU debugger), Debugging Programs with gdb, gdb Commands, The Tiny.m Program
directory location, Debugging Programs with gdb
generalPasteboard method, Providing Data to the Pasteboard
getFormAndScaleView method, Scaling the GraphView and the drawRect: Method, Changes to the TrackingGraphView Class Files
global variable, Tiny.m Revisited
GNU Emacs, The Tiny.m Program
gotData: method, The Graph Displayer
PaperController.m file, insertion into, Getting Data from Evaluator
grammar.y file, adding to MathPaper, Making Evaluator a MathPaper Auxiliary Executable
graphFormula:userData:error: method, Changes to Controller
graphical user interface (see GUI)
graphics context, The Quartz Window Server
flushing, Buffered, Retained, and Nonretained Windows
graphics functions, Quartz Graphics Data Types, Quartz Graphics Data Types
GraphPaper application, GraphPaper: A Multithreaded Application with a Display List
@class directive, The Controller Class
autosizing, Autosizing in GraphPaper
building the application, Building the GraphPaper Application, The Segment Class
class implementation file, The GraphView Class Implementation File
class interface file, The GraphView Class Interface File, The GraphView Class Interface File
display list, implementing, Implementing the Display List, Implementing the Display List
Evaluator, changes to, Changes to the Evaluator Back End
interface, Building GraphPaper’s Interface
NSForms and NSFormCells, Building GraphPaper’s Interface
outlets and action methods, Building GraphPaper’s Interface
settings, Building GraphPaper’s Interface
color functions, testing, Testing GraphPaper’s Color
color programming, Programming with Color, Adding Color to GraphPaper
ColorGraphView class, ColorGraphView, The ColorGraphView Class Implementation
Controller class, The Controller Class
defaults, adding to, Adding Defaults to GraphPaper, Reading Values from the Defaults Database
default values, Adding Defaults to GraphPaper
loading and saving, Loading and Saving the Default Values
reading of the database, Reading Values from the Defaults Database, Reading Values from the Defaults Database
design, GraphPaper’s Design
drag-and-drop
receiving color changes, Being a Drag-and-Drop Receiver
receiving text, Being a Drag-and-Drop Receiver
as source, Being a Drag-and-Drop Source
Evaluator, use of, Connecting to the Back End
GraphView class (see GraphView class)
graphView method declaration, The Controller Class
interface, The Interface
Label class, The GraphView, Segment, and Label Classes
mouse tracking, adding, Adding Mouse Tracking to GraphPaper, Changes to the TrackingGraphView Class Files
mouseEntered:, mouseExited:, and mouseMoved: methods, in TrackingGraphView.m file, Changes to the TrackingGraphView Class Files
pasteboard functions, Using the Pasteboard in GraphPaper, Testing GraphPaper’s Copy and Cut Commands
PDF, saving graphic images to, Saving to PDF, Changes to the Controller Class
PrefController class, Creating the Preferences Nib, Panel, and PrefController
Preferences panel, Making the Preferences Panel Work with Defaults, Loading and Saving the Default Values
adding multi-view capability, Setting Up a Multi-View Panel
creating, Creating a Preferences Panel
PrefController class, modifications to, Changes to the PrefController Class
Preferences.nib file, editing, Modifying the Preferences Panel
testing, Testing the Updated Preferences Panel
Preferences.nib file, Creating the Preferences Nib, Panel, and PrefController
Save Graph command, Changes to the Controller Class
testing, Testing the Save Graph Menu Command, Testing the Save Graph Menu Command
Segment class, The GraphView, Segment, and Label Classes
services modifications, Modifications Required for GraphPaper to Implement Services
stopping a running graph, Stopping a Running Graph
stuffer process, Unix Pipes and Evaluator
testing, Testing GraphPaper
TIFF, PDF conversion to, Saving to TIFF
TrackingGraphView class, file modifications, Changes to the TrackingGraphView Class Files
zoom buttons, Adding a Zoom Button to GraphPaper, Testing the Zoom Button
testing, Testing the Zoom Button
ZoomScrollView class, creating, Changes to MainMenu.nib
GraphView class, Implementing the Display List, The GraphView, Segment, and Label Classes
axes, adding, Adding Axes
ColorGraphView subclass, Adding Color to GraphPaper
data stuffer methods, The Data Stuffer Methods
defaults system and, Adding Defaults to GraphPaper
registering, Registering the Default Values
display list, Why Use a Display List?
extending, Extending the Display List
drag-and-drop, modification for, Being a Drag-and-Drop Source
drawRect: method, Scaling the GraphView and the drawRect: Method
initWithFrame: method, The initWithFrame: Method
isOpaque method, Scaling the GraphView and the drawRect: Method
labeling, adding, Adding Labeling
Quartz and NSView, use of, Scaling the GraphView and the drawRect: Method
Segment class and, The Segment Class
service, running as, Modification of GraphView
GraphViewElement protocol, Implementing the Display List
methods, Implementing the Display List
graph: method, Building GraphPaper’s Interface, The Data Stuffer Methods
grep, Working in a Unix Shell, Step by Step
groups, Rich Text Syntax
GUI (graphical user interface), Understanding theAqua Interface
(see also Aqua)

I

IB (Interface Builder), What Makes Mac OS X So Special?, Interface Builder
accessory views, support for, Creating an Accessory NSView, Changes to the Controller Class
applications, creating with, Creating a Simple Application with Interface Builder, Inspecting and Changing Your Button’s Attributes
Calculator application, Getting Started: Building the Calculator Project, Building the Calculator’s User Interface
Classes -> Read Files menu command, Using IB’s Read Files Commandwith a New Action Method
Controller class, adding new definitions, Modifying the Controller Class
delegate specification, Setting Up a Delegate Outlet in the Nib
fonts, setting, Setting Up Tags and Titles for the Keypad Buttons
icon, Creating a Simple Application with Interface Builder
MainMenu.nib file, Getting Started: Building the Calculator Project
Nib File window (see Nib File window)
NSMatrix dragging options, NSMatrix Dragging Options in IB
NSWindow class, subclassing, Subclassing the NSWindow Class
NSWindow Info dialog, Customizing the Main Window
objects, adding to applications, Adding Objects to Your Application, Inspecting and Changing Your Button’s Attributes
opening screen, Getting Started with Interface Builder
Palettes window, Adding a Button Object to Your Window, Adding Controls in a Window
Test Interface mode, Adding a Button Object to Your Window
window drawing choices, Buffered, Retained, and Nonretained Windows
IBAction keyword, Adding Code to Make the Controller Class Work
IBOutlet keyword, Adding Code to Make the Controller Class Work
icns Browser, IconComposer and the icns Browser, Viewing Icons with the icns Browser Application
.icns file extension, Viewing Icons with the icns Browser Application
IconComposer, IconComposer and the icns Browser, Creating Application Icon Files with IconComposer
icons, A Quick Look at the Mac OS X User Interface, Adding Icons to Applications, Making the New Icon Appear in the About Box
available resolutions, Icons for MathPaper
generic system icon, Getting Started with Interface Builder
icns Browser, viewing with, Viewing Icons with the icns Browser Application
icon badge, Adding Icons to Applications
image files, using for, Creating Application Icon Files with IconComposer
MathPaper, creating for, Icons for MathPaper
id data type, The id Data Type
id pointer, Objects and Classes
IDE (integrated development environment), Project Builder, Project Builder
image files, using for icons, Creating Application Icon Files with IconComposer
image well, Color Wells and Image Wells
images, drawing with Quartz, Drawing Images with Quartz, Drawing Images with Quartz
immutable strings, NSString, NSMutableString, and NSLog
Info dialogs, A Quick Look at the Mac OS X User Interface, Info Dialogs
Info.plist file, Creating Your Own Service, Creating the Services Advertisement
XML property list verification, Creating the Services Advertisement
InfoPlist.strings file, Changing the Strings in the About Box
inheritance, The @interface Directive
init method, Creating and Initializing Objects
init process, Processes, PIDs, and UIDs
initFrame: method, PolygonView: A Non-Opaque NSView
+initialize method, Adding Defaults to GraphPaper
initRect:text:size: method, Adding Labeling
initWithCoder: method, Modifying the Controller Class, Loading from a File
initWithContentRect:styleMask:backing:defer: method, Windows, Views, Delegates, and the setup( ) Function, Finishing off the CalcWindow class implementation
initWithFrame: method, BarView: An NSView with a Scaled Coordinate System, The initWithFrame: Method, Setting the Initial Color, Changes to the TrackingGraphView Class Files, Changes to ZoomScrollView
mouse-down event, editing for, Getting a Mouse-Down Event
initX:Y:radius: initializer, Creating and Initializing Objects
inline functions, Quartz Graphics Data Types
inLiveResize method, Resizing
input fields, Text Fields and Scrolling Lists
inspectors, Info Dialogs
instance methods, Objects and Classes, The @interface Directive
instance variables, Objects and Classes
initialization, Modifying the Controller Class
scope, The enterDigit: Action Method
instances, Objects and Classes
integrated development environment (IDE), Project Builder, Project Builder
interactive systems, development of, History of the Video Display Terminal
Interface Builder (see IB)
introspection, The id Data Type
isDescendantOf: method, The NSView Hierarchy
isFlipped method, Flipping
isOpaque method, Opaque and Nonrectangular Views, BarView: An NSView with a Scaled Coordinate System, PolygonView: A Non-Opaque NSView
isRotatedFromBase method, NSView Coordinate Systems
isRotatedOrScaledFromBase method, NSView Coordinate Systems

J

Java, compared to Objective-C, Cocoa, Objective-C, and Java

L

Label class, Adding Labeling, The GraphView, Segment, and Label Classes
dealloc method, Adding Labeling
using, Using the Label Class
lazy evaluation, Cut, Copy, and Paste with the Pasteboard, Providing Data Through Lazy Evaluation
length method, The @implementation Directive
lex, lex and yacc
lex.yy.c file, lex and yacc
lexical analysis, The Evaluator Back End
loadDataRepresentation:ofType: method, Writing the Save Methods, Loading from a File
loadFileWrapperRepresentation:wrapper ofType: method, Writing the Save Methods
loading from a file (MathPaper), Loading from a File, Loading from a File
loadNibNamed:owner: method, Modifying the Controller Class
lockFocus method, Drawing in an NSView with Quartz
locking classes, Locking with NSLock
locks, Locking with NSLock
ltob( ) function, Modifying the Controller Class

M

.m file extension, The Tiny.m Program
Mac OS X, Mac OS X and Cocoa Components, What Makes Mac OS X So Special?, Unix, Mach, and the Mac OS X Environment
applications, About box, Changing the Strings in the About Box
common file extensions, Saving to a File
defaults database, Preferences and Defaults
defaults domains, Defaults Domains
desktop configuration, Configuring Your Desktop, Step by Step
developer tools, Developer Tools, Utilities
development environment, What Makes Mac OS X So Special?
Dock, The Dock, The Dock
Finder (see Finder)
GUI, Acknowledgments, Understanding theAqua Interface
(see also Aqua)
hidden directories, Debugging Programs with gdb
imaging model, What Makes Mac OS X So Special?
keyboard commands, Consistent Aqua
Mac OS 9 applications and, Mac OS X and Classic Mode, The Toolbox, Carbon, and Cocoa
main thread, Launching Threads with NSThread
online documentation, Online Documentation
preferences, Preferences and the Defaults Database System
Terminal (see Terminal application)
Version 10.1 AppKit display bugs, Controlling Display and Redisplay
Window Server, The Window Server and Quartz, The Application Kit and the Window Server
Mach operating system, Mach, Processes, PIDs, and UIDs
messages, Mach
process numbers, Processes, PIDs, and UIDs
mach_init Unix process, Seeing All the Processes
Macintosh Toolbox, The Toolbox, Carbon, and Cocoa
mailing lists, Mailing Lists
main event loop, The Main Event Loop
main thread, Launching Threads with NSThread
main window, Window Types and Behavior, Main and Key Windows
main( ) function, Tiny.m Revisited, The main.m Program File Generated by PB, The Event Loop
main.m file, The main.m Program File Generated by PB, The Event Loop
MainBundle directory, Preferences and Defaults
MainMenu.nib file, Getting Started: Building the Calculator Project
customizing, Customizing MainMenu.nib, Changing the Strings in the About Box
delegate specification, Setting Up a Delegate Outlet in the Nib
for MathPaper, Building MathPaper’s Front End
memory resources and, Managing Multiple Nibs
modifying, Modifying the Main Calculator Nib
Makefile, Building the Back End, Building the Back End
tab characters and spaces in, Building the Back End
makeFirst Responder: message, An Event-Handling Example Using TextEdit
makeKeyAndOrderFront: message, Views
makeWindowControllers method, MathDocument Class Modifications, Rethinking MathDocument and PaperController
man ps command, Seeing All the Processes
managing files, Working with the Filesystem,Step by Step, Filling and Emptying the Trash
MathAnimation view, creating, Creating the MathAnimation View, Creating the MathAnimation View, Putting It All Together, Putting It All Together
MathAnimation.h file, adding instance variables to, Putting It All Together
MathAnimation.m file, Putting It All Together, Putting It All Together
MathApplication class, Implementing the About Panel in MathPaper
MathDocument class, The MathPaper Application, The MathDocument Class, The MathDocument Class
data to be saved, Synchronizing PaperController with MathDocument
MathDocument.h file, editing, The MathDocument Class
PaperController, modification for, MathDocument Class Modifications
MathPaper application, MathPaper and Cocoa’sDocument-Based Architecture, Processes, Pipes, and Resources
About panel animation, Implementing the About Panel in MathPaper
animation, initialization logic, Putting It All Together
back end (Evaluator), The Evaluator Back End
“Can’t create new document” alert, Testing MathPaper’s Document-Based Architecture
cleanup, Killing the Evaluator Processes
document icons, creating, Icons for MathPaper
document windows, marking as edited, Marking a Document Window as Edited
document-based architecture, testing, Testing MathPaper’s Document-Based Architecture
document-based information, customizing, Customizing the Document-Based Project Information in PB
documents, archiving, Archiving MathPaper Documents
Easter egg, adding to, Adding an Easter Egg
Evaluator source code, adding to, Making Evaluator a MathPaper Auxiliary Executable, Making Evaluator a MathPaper Auxiliary Executable
file type and extension, Saving to a File
files and folders, Setting Up the MathPaper Project
changing names of, Changing the Names of MathPaper Project Files, Changing the Names of MathPaper Project Files
first responder, order of responding objects, Writing the Save Methods
grammar.y and rules.l files, addition to, Making Evaluator a MathPaper Auxiliary Executable
instance variables and accessor methods, adding to, Rethinking MathDocument and PaperController, Rethinking MathDocument and PaperController
loading from a file, Loading from a File, Loading from a File
MainMenu.nib file, The MainMenu.nib File, The MainMenu.nib File
File menu items, The MainMenu.nib File
MathAnimation view, creating, Creating the MathAnimation View, Creating the MathAnimation View, Putting It All Together, Putting It All Together
nibs, Building MathPaper’s Front End
PaperController, windows information in, Rethinking MathDocument and PaperController
PaperWindow.nib file, Setting Up PaperWindow.nib, Setting Up PaperWindow.nib
PB, project creation with, Setting Up the MathPaper Project, Setting Up the MathPaper Project
printing capability, adding to, Adding Printing Capability
RTF class, integrating, Integrating Our RTF Class into MathPaper, Integrating Our RTF Class into MathPaper
save features, testing, Testing the Save Features
saved windows and screen resolution, Loading from a File
saving to a file, Icons for MathPaper, Advanced Save Panel Options
saving window data to files, Synchronizing PaperController with MathDocument
target dependency, Making Evaluator a MathPaper Auxiliary Executable
window management, Cocoa’s Document-Based Architecture
window titles, Giving Proper Titles to MathPaper Windows
MATP and .matp, Saving to a File
memory initialization and allocation (Objective-C), Creating and Initializing Objects
freeing memory, Destroying Objects
memory leaks, causes of, The @implementation Directive
memory management, ObjectAlloc, autorelease and the NSAutoreleasePool Class
memory protection, Operating Systems
menu bar, Menus and the Menu Bar
menus, Menus and the Menu Bar, Services Submenu
choices, shorthand for, Conventions Used in This Book
combination boxes, Pop-up Menus, Command Pop-down Menus, and Combination Boxes
Finder, The Menu Structure
length, User Interface Design
pop-up menus, Pop-up Menus, Command Pop-down Menus, and Combination Boxes
message expression, Methods and Messaging
messages, Methods and Messaging
C-language function calls, compared to, Methods and Messaging
methods, contrasted with, Methods and Messaging
Objective-C, Objects, Messages, and Targets
messaging operators, Objects and Classes
methods, Methods and Messaging
(see also accessor methods; action methods; entries under individual methods)
class methods, The +alloc Method and the NSObject Root Class
factory methods, Objects and Classes, Creating and Initializing Objects
instance methods, Objects and Classes, The @interface Directive
messages, contrasted with, Methods and Messaging
Objective-C, Objects, Messages, and Targets
modal sessions, Pasteboards, Services, Modal Sessions, and Drag-and-Drop, Modifications Required for GraphPaper to Implement Services, Changes to Controller
modal tool selection, Mouse Action Paradigms
modeless dialogs, Dialogs
Motorola/IBM PowerPC microprocessor, Mach
mouse action paradigms, Mouse Action Paradigms
mouse events, The Mouse and Cursor
dragging, The Mouse and Cursor
handling, Mouse Event Handling
order of difficulty, Tracking Rectangles
pressing, The Mouse and Cursor
via responder chain, Tracking Rectangles
tracking, Tracking the Mouse, Adding Mouse Tracking to GraphPaper, Changes to the TrackingGraphView Class Files
rectangles, Tracking Rectangles
types, Mouse Event Handling
mouse-to-focus, The Finder’s Viewing Options
mouseDown: method, Responders and the NSResponder Chain, Mouse Event Handling, Getting a Mouse-Down Event
mouseDragged: method, Mouse Event Handling, Being a Drag-and-Drop Source
mouseEntered: method, Mouse Event Handling
mouseExited: method, Mouse Event Handling
mouseMoved: method, Mouse Event Handling
mouseUp: method, Mouse Event Handling
multi-view windows, Multi-View Windows
mutually exclusive (mutex) lock, Locking with NSLock
[myView drawRect:] message, Drawing with Quartz Inside a View Object

N

needsDisplay method, Controlling Display and Redisplay
NetInfo (network administrative information) system, Usernames and UIDs
newDocument: method, Rethinking MathDocument and PaperController
NeXT Interface Builder, Building the Calculator’s User Interface
nextEventMatchingMask:untilDate:inMode:dequeue: method, The Main Event Loop
nextResponder instance variable, Responders and the NSResponder Chain
NeXTSTEP operating system, Object-Oriented Programming, Objects and Classes, Mach
nib, Getting Started with Interface Builder
Nib File window, Getting Started with Interface Builder, Getting Started with Interface Builder
Classes tab, Getting Started with Interface Builder
First Responder, Getting Started with Interface Builder
Images tab, Getting Started with Interface Builder
Instances tab, Getting Started with Interface Builder
Sounds tab, Getting Started with Interface Builder
nib files, Building the Calculator’s User Interface
managing multiple, Managing Multiple Nibs
nonretained windows, Buffered, Retained, and Nonretained Windows
notification system, Modifying the Controller Class, Creating PaperController, a Subclass of NSWindowController, Getting Data from Evaluator, Putting It All Together
“NS” prefix, Objects and Classes
NSActionCell class, Action Messages and the NSResponder Chain
NSApp delegate, The Controller Class
NSApp object, Tiny.m Revisited
main event loop, The Main Event Loop
[NSApp terminate:self] message, Targets, Actions, and Connections
NSApplication class, Tiny.m Revisited
Controller instance, delegate specification, Setting Up a Delegate Outlet in the Nib
event handling, Events and the NSApplication Object
MathApplication subclass, Implementing the About Panel in MathPaper
NSApplicationIcon system icon, Getting Started with Interface Builder
NSApplicationMain( ) function, The main.m Program File Generated by PB
NSApplicationNotifications category, Adding the Delegate Method to the Controller
NSArray class, Accessing NSMatrix Cells with an NSArray Object
NSAssert( ) macro, Changes to ZoomScrollView
NSAttributedString class, Creating an RTF Class
NSAutoreleasePool class, autorelease and the NSAutoreleasePool Class, autorelease and the NSAutoreleasePool Class
NSBezierPath class, Drawing with Quartz Inside a View Object
NSBundle class, Modifying the Controller Class
NSCell objects, Adding Controls in a Window
NSCell subclasses, Adding Controls in a Window
NSClipView class, The NSScrollView and NSTextView Classes
NSCoder class, Archiving MathPaper Documents
common methods, Archiving MathPaper Documents
NSColor class, Setting Colors, Drawing Rectangles, and Drawing Lines, Colors from a Programmer’s Point of View
NSColorPanel.h file, The ColorGraphView Class Implementation
NSColorWell.h file, The ColorGraphView Class Implementation
NSControl objects, Adding Controls in a Window
NSControl subclasses, Adding Controls in a Window
NSDictionary class, Dictionaries
NSDocument class
data management with, Data Management with NSDocument, Rethinking MathDocument and PaperController
MathDocument subclass, The MathPaper Application, The MathDocument Class, The MathDocument Class
save methods, Writing the Save Methods
NSDocumentController class, Rethinking MathDocument and PaperController
File menu action methods, Rethinking MathDocument and PaperController
NSDraggingDestination methods, Being a Drag-and-Drop Receiver
NSEvent class, The NSEvent Object
NSFileHandle class, Processes, Pipes, and Resources
NSFileHandleReadCompletionNotification message, Creating PaperController, a Subclass of NSWindowController
NSFont class, Formatting NSTextView Output
NSFontAttributeName key, Drawing Text with Quartz
NSGeometry.h file, Quartz Graphics Data Types
NSHumanReadableCopyright string, Changing the Strings in the About Box
NSImage class, Cocoa’s NSImage Class , Drawing Images with Quartz
NSLayoutManager class, The NSScrollView and NSTextView Classes
NSLock class, Locking with NSLock
NSMakeRange( ) function, Formatting NSTextView Output
NSMatrix class, Adding Controls in a Window
sizing and dragging, NSMatrix Dragging Options in IB
NSMutableArray class, Accessing NSMatrix Cells with an NSArray Object, Connecting to the Back End
NSMutableAttributedString class, Creating an RTF Class
NSMutableDictionary class, Dictionaries
for drawing fonts, Drawing Text with Quartz
setObject:forKey: method, Methods for searching for button titles
NSMutableString class, NSString, NSMutableString, and NSLog
NSObject class, The +alloc Method and the NSObject Root Class, Delegation
RTF class, creating, Creating an RTF Class, Creating an RTF Class
NSPasteboard class, Cut, Copy, and Paste with the Pasteboard, Testing GraphPaper’s Copy and Cut Commands
NSPipe class, Processes, Pipes, and Resources
NSPoint structure, Quartz Graphics Data Types
NSPopUpButton class, Handling Different Bases, Changes to MainMenu.nib
cover, Changes to MainMenu.nib
NSRange class, Formatting NSTextView Output
NSRectFill( ) function, Drawing with Quartz Inside a View Object
NSRegisterServicesProvider( ) function, Creating Your Own Service
NSResponder class
chain and action messages, Action Messages and the NSResponder Chain
event methods, The NSEvent Object, Responders and the NSResponder Chain
NSScrollView class, The NSScrollView Class Revisited
embedded classes, The NSScrollView and NSTextView Classes
ZoomScrollView subclass, The NSScrollView Class Revisited
NSSimpleHorizontalTypesetter class, The NSScrollView and NSTextView Classes
NSSize structure, Quartz Graphics Data Types
NSString class, NSString, NSMutableString, and NSLog
using autorelease pool, autorelease and the NSAutoreleasePool Class
NSStringDrawing category, Drawing Text with Quartz
NSTask class, Processes, Pipes, and Resources
NSText class, The NSScrollView and NSTextView Classes
font manipulation, Rich Text Format, Formatting NSTextView Output
NSTextContainer class, The NSScrollView and NSTextView Classes
NSTextField class, Adding Controls in a Window
Size Info dialog, Modifying the Calculator’s Interface
NSTextStorage class, The NSScrollView and NSTextView Classes
NSTextView class, The NSScrollView and NSTextView Classes
delegate methods, NSTextView Class Basics
creating, Creating the NSTextView Delegate
send and return types, How Services Work
uses, NSTextView Class Basics
NSThread class, Launching Threads with NSThread
NSTimer class, Adding and Removing Timers
NSTrackingRectTag class, Tracking Rectangles
NSUserDefaults class, The NSUserDefaults Class
thread-safety, lack of, Adding Defaults to GraphPaper
NSView class, Tiny.m Revisited, The NSView Class, The NSView Class, A Closer Look at the NSView Class, Getting a Mouse-Down Event
accessory views, Creating an Accessory NSView, Changes to the Controller Class
BarView subclass, creating, BarView: An NSView with a Scaled Coordinate System, BarView: An NSView with a Scaled Coordinate System
common instance methods, The NSView Class
coordinate systems, NSView Coordinate Systems
flipped views and other operating systems, Flipping
methods, for inspections and change, NSView Coordinate Systems
dataWithEPSInsideRect: message, Producing PDFs from NSView
dataWithPDFInsideRect: message, Producing PDFs from NSView
drawing techniques, Drawing in an NSView with Quartz
events, responding to, Responding to Events in an NSView
NSScrollView, placing inside, Placing an NSView Inside an NSScrollView
PolygonView subclass, creating, PolygonView: A Non-Opaque NSView, PolygonView: A Non-Opaque NSView
size, changing, Changing the PolygonView’s Size, Changing the PolygonView’s Size
resizing, Resizing
Size Info dialog, Modifying the Calculator’s Interface
view hierarchy, The NSView Hierarchy
views (see views)
window position methods, NSView Coordinate Systems
NSView.h file, Tiny.m Revisited
NSWindow class, Objects and Classes, Tiny.m Revisited, The NSWindow Class, The NSWindow Class
common instance methods, The NSWindow Class
defaults and, Adding Defaults to GraphPaper
designated initializer, Finishing off the CalcWindow class implementation
docEdited flag instance variable, Marking a Document Window as Edited
subclassing, Subclassing the NSWindow Class, Subclassing the NSWindow Class
NSWindow Info dialog, Customizing the Main Window
NSWindowController class
PaperController subclass, The MathPaper Application
creating, Creating PaperController, a Subclass of NSWindowController, Creating PaperController, a Subclass of NSWindowController
window titles, Giving Proper Titles to MathPaper Windows

O

Object class, Creating the Controller Class
object-oriented programming, Object-Oriented Programming
ObjectAlloc, ObjectAlloc
objectForKey: message, Finishing off the CalcWindow class implementation
Objective-C, Object-Oriented Programming, Objects, Messages, and Targets, Objects and Classes, An Introduction to Objective-C, The #import Directive
#import directive, The #import Directive
@interface directive, The @interface Directive
classes, Objects and Classes
example, A Simple Class Example
initialization, Creating and Initializing Objects
colon, use in messages, Targets, Actions, and Connections
Controller class, Building the Calculator’s Controller Class
essential elements, Objects and Classes
Java, compared to, Cocoa, Objective-C, and Java
memory initialization and allocation, Creating and Initializing Objects
freeing memory, Destroying Objects
memory management, Cocoa, Objective-C, and Java
messages, Methods and Messaging
messaging operators, Objects and Classes
methods, Methods and Messaging
object pointers, Objects and Classes
objects, Objects, Messages, and Targets, Objects and Classes
public variables, The NSView Class
runtime speed, The id Data Type
strong typing, Modifying the Controller Class
variables, initialization, Modifying the Controller Class
objects, Object-Oriented Programming, Interface Builder, Objects, Messages, and Targets, Objects and Classes
adding to applications, Adding Objects to Your Application, Inspecting and Changing Your Button’s Attributes
destroying, Destroying Objects
okay: method, Changes to the PrefController Class
oldRadix variable, Modifying the Controller Class
OmniGraffle, Users and Pasteboards
opaqueAncestor method, Opaque and Nonrectangular Views
openDocument: method, Rethinking MathDocument and PaperController
OpenStep operating system, Mach
orderFrontStandardAboutPanel: method, Changing the Application Menu, Implementing the About Panel in MathPaper
outlet connections, Making the Connections
outlets, Outlets and Connections
adding to a class, Adding Outlets to an Object, Modifying the Controller Class
overridden methods, declaring, BarView: An NSView with a Scaled Coordinate System
owner:self clause, Creating the About Box Nib

P

paging, Mach
Palettes window, Adding a Button Object to Your Window, Adding Controls in a Window
panel, Changing the Application Menu
panes, Multi-View Windows
Pantone colors, Colors and Color Objects
PaperController class, The MathPaper Application
cleanup code, Creating PaperController, a Subclass of NSWindowController
creating, Creating PaperController, a Subclass of NSWindowController, Creating PaperController, a Subclass of NSWindowController
instance variables, adding to, Creating PaperController, a Subclass of NSWindowController
MathDocument, synchronization with, Synchronizing PaperController with MathDocument
MathPaper, modification for, PaperController Class Modifications
synchronizeData method, Synchronizing PaperController with MathDocument
PaperWindow.nib file, Building MathPaper’s Front End, Setting Up PaperWindow.nib, Setting Up PaperWindow.nib
parser, The Evaluator Back End
pasteboard data types, Providing Data to the Pasteboard
pasteboard functions (cut, copy, and paste), Cut, Copy, and Paste with the Pasteboard, Testing GraphPaper’s Copy and Cut Commands
cutting data, Implementing the Cut Command
lazy evaluation, Providing Data Through Lazy Evaluation
transparency of, Users and Pasteboards
types message, Providing Data Through Lazy Evaluation
types of pasteboards, Types of Pasteboards
pasteboardWithName: method, Providing Data to the Pasteboard
pasteboard:provideDataForType: method, Providing Data Through Lazy Evaluation
paste: method, Providing Data to the Pasteboard
PB (Project Builder), Project Builder
action buttons, Getting Started: Building the Calculator Project
action methods, adding, Using IB’s Read Files Commandwith a New Action Method
application template interface, customizing, Changing the Application Menu
Calculator application, Getting Started: Building the Calculator Project
class browser, accessing, The NSWindow Class
creator code settings, Customizing the Document-Based Project Information in PB
debug buttons, Getting Started: Building the Calculator Project
document type settings, Customizing the Document-Based Project Information in PB
document-based project information, customizing, Customizing the Document-Based Project Information in PB
filenames, viewing, Getting Started: Building the Calculator Project
generated files, Other PB-Generated Files
icon, Creating a Simple Application with Interface Builder
images, assigning to icons, Changing Calculator’s Application Icon
main window, Getting Started: Building the Calculator Project
main.m file, The main.m Program File Generated by PB
MathPaper project, Setting Up the MathPaper Project, Setting Up the MathPaper Project
inclusion of Evaluator source, Making Evaluator a MathPaper Auxiliary Executable
programs, compiling from, Compiling and Running a Program from PB
error messages, Compiler Error Messages
project files, The Files in a Project
Services advertisements, XML editing, Creating the Services Advertisement
tabbed views, Getting Started: Building the Calculator Project
PDF (Portable Document Format), What Makes Mac OS X So Special?, Saving to PDF
saving graphic images to, Saving to PDF, Changes to the Controller Class
TIFF, conversion to, Saving to TIFF
PDFForView: method, Changes to the Controller Class
pencil cursor, Cursors
performClick: message, Finishing off the CalcWindow class implementation
performClose: message, Changing the Application Menu
performDragOperation: method, Being a Drag-and-Drop Receiver
performKeyEquivalent: message, Keyboard Event Handling
persistent domains, Persistent versus volatile defaults
PID (process identifier), Processes, PIDs, and UIDs
pipe (\|), Working in a Unix Shell, Step by Step
pipes (Unix)
communication and, Processes, Pipes, and Resources
Evaluator and, Unix Pipes and Evaluator
pixels, Cursors
plists (property lists), PropertyListEditor, Changing the Strings in the About Box
files, editing, Accessing the Defaults Database with PropertyListEditor
plus sign (+), in method names, The +alloc Method and the NSObject Root Class
point-to-focus, The Finder’s Viewing Options
PolygonView class, PolygonView: A Non-Opaque NSView, PolygonView: A Non-Opaque NSView
mouse-down events, Getting a Mouse-Down Event
size, changing, Changing the PolygonView’s Size, Changing the PolygonView’s Size
pop-up menus, Pop-up Menus, Command Pop-down Menus, and Combination Boxes
Portable Document Format (see PDF)
PostScript, Saving to PDF
PrefController class, Adding Color to GraphPaper, Creating the Preferences Nib, Panel, and PrefController
implementation, PrefController Class Implementation
preferences, Finder Preferences, System Preferences, Preferences and the Defaults Database System
Finder, setting, Finder Preferences
operating system, System Preferences, System Preferences
running application, risks of changing in, Accessing the Defaults Database with PropertyListEditor
Preferences panel, Creating a Preferences Panel
Preferences.nib file, Creating the Preferences Nib, Panel, and PrefController
printing, Adding Printing Capability
print: method, Adding Printing Capability
privileges, files, Getting Information About Files
process identifier (PID), Processes, PIDs, and UIDs
processes, Mach
ProcessViewer, Utilities, Seeing All the Processes
programs, compiling, Compiling and Running a Program, Compiler Error Messages
Project Builder (see PB)
property lists (see plists)
PropertyListEditor, PropertyListEditor, The Defaults System, Accessing the Defaults Database with PropertyListEditor
proxy (file) icon, Document Windows
proxy object, Creating the About Box Nib
ps command, Seeing All the Processes
commonly listed processes, Seeing All the Processes
man ps, Seeing All the Processes
output fields, Seeing All the Processes
ps aux, Working in a Unix Shell, Step by Step
public variables, The NSView Class
push buttons, Push buttons

R

radio buttons, Radio buttons and checkboxes, Handling Different Bases
radix, Delegation and Resizing
RAM (random-access memory), Mach
readSelectionFromPasteboard: method, How Services Work
receiver, Methods and Messaging
release message, Destroying Objects
rules for use, autorelease and the NSAutoreleasePool Class
release method, Destroying Objects, autorelease and the NSAutoreleasePool Class
removeAnnotations method, Changes to the TrackingGraphView Class Files
replaceSubview:with: method, The NSView Hierarchy
resignFirstResponder message, An Event-Handling Example Using TextEdit
resizeSubviewsWithOldSize: method, Resizing
resizing windows, Resizing Windows Programmatically, Modifying the Controller Class
responder, Getting Started with Interface Builder
responder chain, Responders and the NSResponder Chain
action messages and, Action Messages and the NSResponder Chain
respondsTo Selector: message, Delegation
retain message, Destroying Objects
reference count incrementation, Destroying Objects
retained windows, Buffered, Retained, and Nonretained Windows
returnTypes, How Services Work
revert: method, Changes to the PrefController Class, Loading and Saving the Default Values
RGB color model, Colors and Color Objects
Rich Text Format (see RTF)
root system user, Usernames and UIDs
viewing root processes, Seeing All the Processes
rotateByAngle: method, NSView Coordinate Systems
RTF (Rich Text Format), Rich Text Format and NSText, Rich Text Syntax, RTF Control Words and Symbols
angle, Using TextEdit to Explore RTF
classes, creating for, Creating an RTF Class, Creating an RTF Class
control words and symbols, RTF Control Words and Symbols, RTF Control Words and Symbols
fonts, Using TextEdit to Explore RTF
groups, Rich Text Syntax
states, Rich Text Syntax
weight, Using TextEdit to Explore RTF
RTF class, Creating an RTF Class, Creating an RTF Class
dependencies on other classes, Creating an RTF Class
implementation, Creating an RTF Class
instance methods, Creating an RTF Class
MathPaper, integration into, Integrating Our RTF Class into MathPaper, Integrating Our RTF Class into MathPaper
rubberbanding, The Mouse and Cursor
rules.l file, Building the Back End
MathPaper, adding to, Making Evaluator a MathPaper Auxiliary Executable
run message, The Main Event Loop
runModalSession: message, Modifications Required for GraphPaper to Implement Services
runningAsService instance variable, Modification of GraphView
runtime binding, Objects, Messages, and Targets

S

Save Graph command, Changes to MainMenu.nib
save methods, Writing the Save Methods, Writing the Save Methods
save options, supporting, Creating an Accessory NSView, Changes to the Controller Class
saveAllDocuments: method, Rethinking MathDocument and PaperController
saveDocumentTo: method, Changes to the Controller Class, Changes to the Controller Class
saveDocument: message, Writing the Save Methods
savePanel instance variable, Creating an Accessory NSView
savePanelDidEnd:returnCode:contextInfo: method, Changes to the Controller Class
saving data, Memory to Disk and Back
saving files, Saving to a File, Advanced Save Panel Options
customizing features, Advanced Save Panel Options, Advanced Save Panel Options
Save As or Save To, Advanced Save Panel Options
without filename, Advanced Save Panel Options
scaled coordinate system, BarView: An NSView with a Scaled Coordinate System, BarView: An NSView with a Scaled Coordinate System
scaleFactor instance variable, Changes to ZoomScrollView
scaleUnitSquareToSize: method, NSView Coordinate Systems, Changes to ZoomScrollView
scale: message, The NSScrollView Class Revisited
screen resolution and saved windows, Loading from a File
scroll arrows, Sliders and Scrollers
scrollers, Sliders and Scrollers
scrolling, Timers
scrolling lists, Text Fields and Scrolling Lists
Segment class, The Segment Class
self, Adding Code to Make the Controller Class Work, Creating the About Box Nib
[self bounds] message, Drawing with Quartz Inside a View Object
semiautomatic memory management, Cocoa environment, ObjectAlloc
sendAction:to: method, Action Messages and the NSResponder Chain
sendData method, The Data Stuffer Methods
senders, Adding Actions to the Controller
sendTypes, How Services Work
services, Services, Testing GraphPaper’s Service
aliases, Mac OS X version dependency, Creating the Services Advertisement
Controller class, registration as, Changes to Controller
creating, Creating Your Own Service, Testing GraphPaper’s Service
GraphPaper implementation, Modifications Required for GraphPaper to Implement Services
GraphView class, conversion to, Modification of GraphView
Info.plist file, Creating Your Own Service, Creating the Services Advertisement
XML property list verification, Creating the Services Advertisement
InfoPlist.strings file, Changing the Strings in the About Box
operating system, control by, How Services Work
Services advertisements, Creating Your Own Service
creating, Creating the Services Advertisement, Creating the Services Advertisement
fields, Creating Your Own Service
XML editing, Creating the Services Advertisement
Services submenu and commands, Services Submenu
setAutoresizesSubviews: method, Resizing
setAutoresizingMask: method, Resizing
setBoundsSize: method, BarView: An NSView with a Scaled Coordinate System
setColor method:, Adding Labeling
setData:Type: method, Providing Data to the Pasteboard
setDelegate: method, Specifying an Object’s Delegate
setEnd: method, The @interface Directive
memory leaks and, The @implementation Directive
setFormat: method, Creating an Accessory NSView, Changes to the Controller Class
setFrameOrigin: method, Moving and Resizing Views
setFrameRotation: method, Moving and Resizing Views
setFrameSize: method, Moving and Resizing Views
setFrame: method, Moving and Resizing Views
setFrame:display: method, Loading from a File
setFrame:display:animate: method, Modifying the Controller Class
setHasHorizontalScroller: message, The NSScrollView and NSTextView Classes
setHasVerticalScroller: message, The NSScrollView and NSTextView Classes
setNeedsDisplay message, Modifying the Controller Class
setNeedsDisplayInRect: method, Controlling Display and Redisplay
setNeedsDisplay: method, Controlling Display and Redisplay
setNumSides: method, PolygonView: A Non-Opaque NSView
setObjectsToColor: method, ColorGraphView
setObjectsToColor:forTag: method, ColorGraphView, The ColorGraphView Class Implementation, Reading Values from the Defaults Database
setObject:forKey: method, Methods for searching for button titles
setPercentage: method, BarView: An NSView with a Scaled Coordinate System
setPostsFrameChangedNotification: method, The NSView Hierarchy
setRadius: method, A Simple Class Example
setRadix: method, Modifying the Controller Class, Modifying the Controller Class
hexadecimal operations, modifying for, Modifying the Controller Class
multi-base applications, modifying for, Accessing NSMatrix Cells with an NSArray Object
setScaleFactor: method, Changes to ZoomScrollView
setServicesProvider: message, Creating Your Own Service
setSize: method, Changing the PolygonView’s Size
setStart: method, The @interface Directive, Destroying Objects
memory leaks and, The @implementation Directive
setTag: method, Adding Labeling
setup( ) function, Windows, Views, Delegates, and the setup( ) Function
setUpWell: method, PrefController Class Implementation, Changes to the PrefController Class
setX:andY: method, A Simple Class Example
shape instance variable, Getting a Mouse-Down Event
Shell menu, The Mac OS X Terminal Application
shells (Unix), The Mac OS X Terminal Application
Should messages, Should, Will, and Did Delegates
examples, Should, Will, and Did Delegates
showAboutPanel: method, Modifying the Controller Class, Modifying the Main Calculator Nib
showPrefs: method, The Controller Class
Size Info dialog, Modifying the Calculator’s Interface
sizeToCells message, Modifying the Controller Class
sliders, Sliders and Scrollers
source code examples, resources, Sample Code
source image, Drawing Images with Quartz
spaces vs. tab characters, Unix, Building the Back End
square brackets ([ ]), Objects and Classes
sscanf( ) function, The Graph Displayer
stack-trace, gdb Commands
standard state, Configuring Your Desktop, Step by Step
+standardUserDefaults method, The NSUserDefaults Class
start method, The @interface Directive
states, Rich Text Syntax
static input fields, Text Fields and Scrolling Lists
static typing, Creating and Initializing Objects
Stickies advertisement, How Services Work
stopGraph: method, Building GraphPaper’s Interface, The Data Stuffer Methods, Stopping a Running Graph
stop: message, The Main Event Loop
string tables, Changing the Strings in the About Box
stringWithFormat: method, autorelease and the NSAutoreleasePool Class
stroke method, Connecting to the Back End, Adding Labeling
strong typing, Modifying the Controller Class
stuffer, Unix Pipes and Evaluator
subclassing vs. delegation, Should, Will, and Did Delegates
submenu, Application Menu
submenu indicator, Menus and the Menu Bar
subtractive color models, Colors and Color Objects
subView outlet, Changes to MainMenu.nib
subviews, Tiny.m Revisited
subviews method, The NSView Hierarchy
[super encodeWithCoder:coder] message, Archiving MathPaper Documents
superuser, Usernames and UIDs
superview, Responders and the NSResponder Chain
superview method, The NSView Hierarchy
swapping, Mach
synchronizeData method, Synchronizing PaperController with MathDocument
System Preferences, System Preferences, System Preferences
system users, Usernames and UIDs

T

tab character vs. spaces, Unix, Building the Back End
tab controls, Other Controls
tag method, Adding Labeling
tagAtPoint: method, Being a Drag-and-Drop Receiver
Tagged Image File Format (see TIFF)
tags, NSMatrix Dragging Options in IB, Setting Up Tags and Titles for the Keypad Buttons
takeFloatSize: method, Changing the PolygonView’s Size
takeIntValueFrom: message, Targets, Actions, and Connections, Action Messages and the NSResponder Chain
takeNumSidesFrom: method, PolygonView: A Non-Opaque NSView
takePercentage: method, BarView: An NSView with a Scaled Coordinate System
target instance variable, NSActionCell class, Action Messages and the NSResponder Chain
target selection mouse action paradigm, Mouse Action Paradigms
target/action paradigm, Targets, Actions, and Connections
targets, Targets, Actions, and Connections, Targets, Actions, and Connections
termcap, History of the Video Display Terminal
viewing, The Mac OS X Terminal Application
Terminal application, Utilities, The Mac OS X Terminal Application, The Defaults System
compiling and running programs in shell window, Compiling and Running a Program from PB
Evaluator program, creation using, lex and yacc
history, Working with the Terminal, History of the Video Display Terminal
preferences, The Mac OS X Terminal Application
Shell menu, The Mac OS X Terminal Application
Terminal Inspector dialog, The Mac OS X Terminal Application
terminals, history of, History of the Video Display Terminal
terminate: message, Targets, Actions, and Connections, The Main Event Loop
terminology, The Mouse and Cursor
Test Interface mode, Adding a Button Object to Your Window
Tevanian, Avie, Mach
text
completion, Pop-up Menus, Command Pop-down Menus, and Combination Boxes
drawing with Quartz, Setting Colors, Drawing Rectangles, and Drawing Lines, Drawing Text with Quartz
fields, Text Fields and Scrolling Lists
textDidChange: method, Creating the NSTextView Delegate, Marking a Document Window as Edited
PaperController.m file, insertion into, Creating the NSTextView Delegate
TextEdit application, The Tiny.m Program
event-handling example, An Event-Handling Example Using TextEdit
RTF (Rich Text Format) and, Using TextEdit to Explore RTF
theText instance variable, Creating PaperController, a Subclass of NSWindowController
threads, Mach, Connecting to the Back End, Threads
locks and, Locking with NSLock
main thread, Launching Threads with NSThread
tick: method, Putting It All Together
TIFF (Tagged Image File Format), Creating Application Icon Files with IconComposer
PDF, conversion from, Saving to TIFF
TIFFForView: method, Saving to TIFF
tile method, Changes to ZoomScrollView
time slice, Operating Systems
timers, Timers, Adding and Removing Timers
timer:invalidate method, Adding and Removing Timers
Tiny.m application, The Tiny.m Program, Tiny.m Revisited, Drawing with Quartz Inside a View Object
main( ) function, Tiny.m Revisited
setup( ) function, Windows, Views, Delegates, and the setup( ) Function
tokens, The Evaluator Back End
toolbar, The Toolbar
Toolbox, The Toolbox, Carbon, and Cocoa
top, Working in a Unix Shell, Step by Step
tracking rectangles, Tracking Rectangles
TrackingGraphView class, Changes to the GraphPaper Interface
translateOriginToPoint: method, NSView Coordinate Systems
transparency, Colors and Color Objects
trash, A Quick Look at the Mac OS X User Interface
two-state buttons, Buttons
type codes, Saving to a File
types method, Providing Data to the Pasteboard

U

UID (user identifier), Usernames and UIDs
Unix operating system, Unix
case-sensitivity, Working with Folders
defaults command, Accessing the Defaults Database in a Terminal
execv( ) function, Processes, Pipes, and Resources
fork( ) function, Processes, Pipes, and Resources
pipes, Unix Pipes and Evaluator
tab characters vs. spaces, Building the Back End
Unix shell, The Mac OS X Terminal Application
unlockFocus method, Drawing in an NSView with Quartz
user identifier (UID), Usernames and UIDs
user interface design, User Interface Design
user processes, viewing, Seeing All the Processes
user state, Configuring Your Desktop, Step by Step
usernames, Usernames and UIDs
USE_RTF conditional completion technique, Integrating Our RTF Class into MathPaper
utility windows, Utility Windows

V

validRequestorForSendType:returnType: method, How Services Work
variables, initialization in Objective-C, Modifying the Controller Class
VDTs (video display terminals), History of the Video Display Terminal
history, History of the Video Display Terminal
vertical scroller, The NSScrollView and NSTextView Classes
vi, The Tiny.m Program
view object, drawing inside with Quartz, Drawing with Quartz Inside a View Object
view-control buttons, Other Controls, The Finder Window
viewDidEndLiveResize method, Resizing
viewing hidden directories, Debugging Programs with gdb
views, Drawing in a Rectangle: More Fun with Cocoa Views
(see also NSView class)
display and redisplay, controlling, Controlling Display and Redisplay
flipping, Flipping
methods for moving and resizing, Moving and Resizing Views
opaque and nonrectangular, Opaque and Nonrectangular Views
viewWillStartLiveResize method, Resizing
viewWithTag: method, The NSView Hierarchy
virtual memory, Mach
virtual terminals, History of the Video Display Terminal
void * pointers, The id Data Type
volatile domains, Persistent versus volatile defaults
VT100 terminal, The Mac OS X Terminal Application

X

XML editing for services, Project Builder, Creating the Services Advertisement

Y

y.tab.h and y.tab.c files, lex and yacc
yacc, lex and yacc
ysize variable, Modifying the Controller Class
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.77.4