Jump To:
Leopard Technical Q&As
Cocoa is an object-oriented application environment designed for developing Mac OS X native applications. The Cocoa frameworks support rapid development and high productivity. Cocoa provides developers starting new Mac OS X projects the fastest way to full-featured implementations. Applications from other platforms can also be brought to Mac OS X quickly using Cocoa.

A guided introduction and learning path for developers new to Cocoa.   Essential information for developers using Objective-C.   Objective-C API references organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sort by
Topic
Sorted by
Date
Driving OpenGL Rendering Loops (HTML)
QA1385: Using Core Video display links (CVDisplayLink) or Cocoa timers (NSTimer) to drive an OpenGL rendering loop
Events & Other Input, Games, Graphics & Imaging 2009-05-01
QuickTime Audio - Easy Frequency Level Metering with MovieAudio APIs (HTML)
QA1459: Describes how to perform frequency band level metering using MovieAudio metering APIs.
QuickTime 2009-01-29
Core Animation properties and Reference Counting (HTML)
QA1565: Describes a discrepancy between the property declarations in Core Animation and the actual behavior.
Games, Graphics & Imaging, Objective-C Language, Resource Management 2008-11-24
Animating the frame of a CALayer. (HTML)
QA1620: Explains how the frame property of a layer interacts with animations.
Graphics & Imaging 2008-10-24
QTKit Capture - Disabling specific audio channels when recording (HTML)
QA1617: Describes how to disable specific audio channels when recording using QTKit Capture.
QuickTime 2008-10-13
Programmatically causing restart, shutdown and/or logout (HTML) (日本語 HTML)
QA1134: Describes how to programmatically cause restart, shutdown, sleep or logout.
Events & Other Input, Process Management, Resource Management 2008-09-24
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Performance 2008-09-16
QTKit Capture - Video Compression Options And Preview (HTML)
QA1583: Describes how video compression options may influence the resolution of previewed video.
QuickTime 2008-09-16
Determining if an application uses Objective-C Garbage Collection (HTML)
QA1599: Shows how to determine if an application or executable is using Objective-C Garbage Collection.
Objective-C Language 2008-09-08
Expanding Tilde-based paths (HTML)
QA1549: Demonstrates how to resolve tilde-based relevant paths.
File Management 2008-09-08
Getting the pixel data from a CGImage object (HTML)
QA1509: Describes how to access the pixel data of a CGImage object
Games, Graphics & Imaging 2008-08-27
Gathering all PostScript Printer Descriptions (PPDs) (HTML)
QA1529: Describes a work around for an issue in PMCopyAvailablePPDs on Mac OS X 10.4 and below
Printing 2008-08-08
Registering and unregistering for sleep and wake notifications (HTML)
QA1340: Explains how applications can register and unregister for sleep and wake notifications on Mac OS X.
Resource Management 2008-08-08
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Games, Graphics & Imaging, Performance, User Experience 2008-08-08
Using QTPixelBufferContextCreate with NewMovieFromProperties (HTML)
QA1443: Discusses using a QuickTime pixel buffer visual context and NewMovieFromProperties to output frames to pixel buffers.
QuickTime 2008-08-08
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Internet & Web, Networking 2008-06-03
QTKit Capture - Disabling Audio Or Video When Capturing From a Muxed Device (HTML)
QA1607: Describes the use of the setEnabled: method to disable audio or video capture from muxed devices.
QuickTime 2008-05-19
Determining console user login status (HTML)
QA1133: How to determine whether a user is logged in on the console, and be notified of changes.
Process Management 2008-04-14
Bonjour Printer Subtype for HTTP (HTML)
QA1555: Describes how printer vendors can register their bonjour service such that Safari can see them.
Networking 2008-03-25
Drawing attributed strings that are both filled and stroked (HTML)
QA1531: Describes how the value of NSStrokeWidthAttributeName indicates fill, stroke, or both, in attributed strings.
Text & Fonts 2008-03-25
QTKit Capture - Extracting SMPTE Timecode information from a QTSampleBuffer (HTML)
QA1600: Describes how to use the QTSampleBufferSMPTETimeAttribute with a sample buffer.
QuickTime 2008-03-17
Suppressing the "unexpectedly quit" alert (HTML)
QA1288: Describes how to suppress the "unexpectedly quit" alert.
User Experience 2008-03-11
Common mistakes with delegation in Cocoa (HTML)
QA1554: The two most common errors that lead to a delegate method not being received.
Design Guidelines, Objective-C Language 2008-02-27
Disabling text completion in an NSTextField (HTML)
QA1553: Shows how to implement a delegate method provided by NSControl to disable automatic text completion.
Text & Fonts, User Experience 2008-02-27
NSDate - Natural language date parsing in early Leopard releases (HTML)
QA1581: Acknowledges a regression in +dateWithNaturalLanguageString: behavior of NSDate which is fixed as of 10.5.2.
User Experience 2008-02-27
Customizing Process Stack Size (HTML)
QA1419: Describes methods for setting the stack size of a process and/or thread.
Process Management, Resource Management 2008-02-20
Re-enabling dragging from NSTableView to other applications (HTML) (日本語 HTML)
QA1220: Explains how to re-enable drag-and-drop from NSTableViews to other applications
Interapplication Communication, User Experience 2008-02-08
Connecting the Font Menu in Interface Builder 3 (HTML)
QA1571: How to connect and configure the Font/Format menus in Interface Builder 3.
Design Guidelines, Text & Fonts, Tools, User Experience 2008-01-21
Enabling the application menu's "Preferences" menu item on Mac OS X (HTML)
QA1552: Describes the two things you need to implement to enable the "Preferences" menu item on Mac OS X.
User Experience 2008-01-21
How do I get the hexadecimal value of an NSColor object? (HTML)
QA1576: Describes how to convert an NSColor object to its Hexadecimal value.
Graphics & Imaging, Objective-C Language 2007-12-19
Obtaining the localized application name in Cocoa (HTML)
QA1544: Describes how to obtain several versions of the application name in Cocoa.
Internationalization, Resource Management 2007-09-21
Adding and removing a submenu from a menu in Cocoa (HTML)
QA1420: Explains how to dynamically add and remove menus in a Cocoa application.
User Experience 2007-09-10
Don't forget to cancel your Bonjour resolve (HTML)
QA1297: Explains why it's important to cancel a Bonjour resolve operation.
Networking 2007-08-30
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Graphics & Imaging, Printing 2007-08-02
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Games, Graphics & Imaging 2007-07-18
Debugging a WebKit Plug-in in Xcode (HTML)
QA1500: Directions for debugging a WebKit plug-in in Xcode.
Internet & Web 2007-06-05
Detecting the Caps Lock Key (HTML)
QA1519: Explains how to detect when the caps lock key is turned on and off.
Events & Other Input 2007-05-11
Using UTIs to Identify Image Files (HTML)
QA1518: Explains how to use Uniform Type Identifiers to identify what files can be opened at images.
File Management, Graphics & Imaging 2007-05-11
Including a custom NSWindow in a nib file (HTML)
QA1511: Shows how to create a custom NSWindow and instantiate it in a nib file.
Tools 2007-03-21
Availability of Quartz Composer Patches in Web Kit (HTML)
QA1505: Details which Quartz Composer patches are available in Web Kit
Internet & Web 2007-03-05
NSOpenPanel - Choosing any file and ignoring packages (HTML)
QA1468: Explains how to configure NSOpenPanel to filter only files and ignoring packages.
File Management, User Experience 2007-01-25
Preventing column reordering in NSTableView (HTML)
QA1503: Demonstrates how to prevent column reordering of certain columns in NSTableView.
User Experience 2007-01-24
How can I determine the order of the languages set by the user in the Language tab of the International preference pane? (HTML)
QA1391: Retrieving the order of the languages set by the International preference pane in Cocoa, Carbon, and Terminal.
Internationalization 2006-12-19
Configuring the Recent Searches menu for NSSearchField (HTML)
QA1496: Discusses the common problem when adding menu items to the Recent Searches menu.
User Experience 2006-11-27
Security Framework Error Codes (HTML)
QA1499: Explains how to interpret errors returned by the Security Framework with an overview of Security error handling.
Security 2006-11-16
NSProgressIndicator animation and redraw (HTML)
QA1473: Discusses why NSProgressIndicator does not redraw during progress loops.
User Experience 2006-11-15
Debugging NSTableView's "Action Invocation" binding (HTML)
QA1472: Discusses the issues and factors that affect NSTableView's "Action Invocation" binding.
User Experience 2006-11-13
Finding EXC_BAD_ACCESS bugs in a Cocoa project (HTML)
QA1367: Discusses how to find memory protection violations or EXC_BAD_ACCESS bugs in Cocoa projects.
Resource Management 2006-10-10
What is the "main bundle" of a command-line foundation tool? (HTML)
QA1436: Reveals the location of the main bundle of a command-line foundation tool.
Runtime Architecture 2006-10-10
How to make NSTextField accept tab, return and enter keys. (HTML)
QA1454: Describes how to make the NSTextField control accept tab, return and enter keys by using the control's dispatch delegate method.
Text & Fonts, User Experience 2006-10-09
Building Objective-C static libraries with categories (HTML)
QA1490: Describes how to properly build Objective-C static libraries that contain categories on existing classes.
Objective-C Language 2006-10-03
Programmatically Accessing and Manipulating Multiple Keychain Items (HTML)
QA1486: An explanation on what is and is not possible using the SecKeychain API to manipulate Keychain Items.
Security 2006-10-03
Embedding Hyperlinks in NSTextField and NSTextView (HTML)
QA1487: Shows how a Cocoa app can embed a hyperlink inside both NSTextField and NSTextView using NSAttributedString.
Text & Fonts, User Experience 2006-10-02
Disabling and Enabling an NSTextView (HTML)
QA1461: Shows how a Cocoa application can disable and enable an NSTextView.
Text & Fonts, User Experience 2006-09-11
How to create a Cocoa Disclosure Button Control (HTML)
QA1485: Explains how to create a disclosure button control in Cocoa, not immediately available in Interface Builder.
User Experience 2006-08-01
CoreAudio Overload Warnings (HTML)
QA1467: Describes CoreAudio overload warnings what they mean and how to avoid them.
Audio 2006-03-29
MovieAudioExtraction - Ensure a Movie is fully loaded before starting an extraction session (HTML)
QA1469: Describes the importance of making sure a Movie is fully loaded before extracting audio.
QuickTime 2006-03-29
Using NSSound with CoreAudio on Mac OS 10.3.x (HTML)
QA1394: Workaround the NULL input buffers in a Core Audio IOProc callback when using NSSound by using AudioDeviceAddIOProc
Audio 2006-03-29
Debugging Graphics with QuartzDebug (HTML) (日本語 HTML)
QA1236: Explains how to use QuartzDebug to debug graphics issues.
Graphics & Imaging 2006-01-12
Problems getting Bonjour TXT record information (HTML)
QA1389: Explains why you might have problems retrieving TXT record information from a CFNetServiceRef or NSNetService.
Networking 2005-07-06
Weak Linking To Spotlight (HTML)
QA1422: Describes a problem with weak linking to Spotlight (the Metadata framework), and its solution.
File Management 2005-06-03
How can I optimize a Quartz Composer composition depending on the hardware it runs on? (HTML)
QA1433: Explains how to design compositions that adapt to the hardware limitations.
Graphics & Imaging 2005-06-01
Crash in ABAddPropertiesAndTypes (HTML)
QA1404: How to correctly add custom Address Book properties using ABAddPropertiesAndTypes
Apple Applications 2005-04-04
Help Book Caching During Software Development (HTML)
QA1409: Development situations that can potentially confuse Help Viewer
Tools 2005-03-30
Finding an NSView's current magnification. (HTML)
QA1346: How to discover the current magnification (zoom level) of any NSView.
Graphics & Imaging, User Experience 2005-03-08
CFBundleIdentifier and user application access (HTML)
QA1373: Describes the role of CFBundleIdentifier in limiting a user's application access.
Design Guidelines, Security 2005-02-08
Public UTIs supported by Mac OS X v10.3 (HTML)
QA1406: Lists the public UTIs (Uniform Type Identifiers) used by the Pasteboard in Mac OS X v10.3.
Interapplication Communication 2005-02-08
Variable arguments in Objective-C methods (HTML)
QA1405: How to implement methods which take a variable number of arguments.
Objective-C Language 2005-01-13
Resolves may return an IPv6 address in Panther (HTML)
QA1298: Explains why you get an IP address of 0.0.0.0 when resolving a Bonjour service.
Networking 2005-01-10
NSOpenGLView redraw problems after a window is closed and re-opened. (HTML)
QA1353: Workaround for NSOpenGLView failure to draw after its window is closed and re-opened.
Graphics & Imaging 2004-12-03
Why aren't my tracking rects working? (HTML)
QA1355: Describes a common mistake in setting up cursor-tracking rectangles.
Events & Other Input, User Experience 2004-12-02
Sending an Email (HTML)
QA1084: Shows how to create an email in the user's prefered email application.
Interapplication Communication, Internet & Web, Networking 2004-11-05
Using Interface Builder's NSOpenGLView or Custom View objects for an OpenGL application (HTML)
QA1167: Describes usage cases for both NSOpenGLViews and Custom Views for Cocoa OpenGL applications
Graphics & Imaging 2004-10-28
Sorting Like the Finder (HTML)
QA1159: Shows how to sort strings like the Finder's list view.
File Management, Text & Fonts 2004-10-27
Preventing sleep (HTML)
QA1160: Explains how your application can prevent the system from sleeping.
Resource Management 2004-10-22
How do I determine how much VRAM is available on my video card? (HTML)
QA1168: Using Core Graphics and IOKit to find the physical size of VRAM on installed hardware.
Graphics & Imaging 2004-10-11
Movies - Saving movie playback hints (HTML)
QA1366: Explains how to save and load media play hints from Movie files.
QuickTime 2004-09-14
Setting the ColorSync profile for a NSBitmapImageRep object (HTML)
QA1369: Setting the ColorSync profile for a NSBitmapImageRep object
Graphics & Imaging 2004-09-08
Bonjour enforces the TXT record format in Panther (HTML)
QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther.
Networking 2004-07-14
Updating the TXT record of a Bonjour service (HTML)
QA1302: Explains how to update a Bonjour TXT record while running on either Jaguar or Panther.
Networking 2004-07-14
Graphics Exporters - Creating 16-bit-per-channel image files (HTML)
QA1354: Discusses how to use QuickTime Graphics Exporters to create 16-bit-per-channel image files.
QuickTime 2004-06-03
Discovering all advertised Bonjour service types (HTML)
QA1337: Explains how to discover all Bonjour service types being advertised on the local network.
Networking 2004-06-01
Avoiding the -42 error with DiscRecording (HTML)
QA1292: Explains how to workaround the -42 error when using the DiscRecording API.
File Management 2004-05-25
Bonjour enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Bonjour service might fail on Panther.
Networking 2004-03-23
Use the Computer Name when registering your Bonjour service (HTML)
QA1228: Explains why you should use the Computer Name when advertising a Bonjour service.
Networking 2004-03-05
Shearing a Coordinate Space with NSAffineTransform (HTML) (日本語 HTML)
QA1332: Describes a simple way to shear coordinate spaces by adding a few methods to the NSAffineTransform class.
Graphics & Imaging 2004-01-29
Downloading through a proxy server in Mac OS X (HTML)
QA1296: Explains when downloading through a proxy server will work, and when it will fail.
Networking 2003-10-29
Environment Variables (HTML)
QA1255: Describes how a process gets its environment variables.
Runtime Architecture 2003-10-29
Bonjour TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Networking 2003-10-23
Third party VFS can't unmount on Mac OS X 10.3 (HTML)
QA1308: Describes changes in unmounting behavior for VFS plug-ins under Mac OS X 10.3 "Panther."
File Management 2003-10-23
Bonjour and wake from sleep (HTML)
QA1290: Explains why applications that use Bonjour should stay registered and continue browsing on sleep.
Networking 2003-09-18
How to add other pasteboard types to an HFS Promise drag in Cocoa (HTML)
QA1300: Explains how to add other pasteboard types to an HFS Promise drag in Cocoa.
Interapplication Communication 2003-09-15
How to remove the "Open Recent" menu item in a Document-based Cocoa application (HTML)
QA1289: Explains how to remove the "Open Recent" menu item in a Document-based Cocoa application.
User Experience 2003-09-15
How to set a custom drag image when doing an HFS Promise drag in Cocoa (HTML)
QA1200: Explains how to set a custom drag image when doing an HFS Promise drag in Cocoa.
Interapplication Communication, User Experience 2003-09-15
CFXML to CFPropertyListRef (and back!) (HTML) (日本語 HTML)
QA1208: Describes to how save and restore a CFPropertyListRef to and from an XML file.
Data Management 2003-08-29
CGImageRef contents are immutable (HTML) (日本語 HTML)
QA1276: Explains that CGImageRef contents are considered immutable once created.
Graphics & Imaging 2003-07-17
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
Graphics & Imaging 2003-04-17
PPPoE Server for Testing (HTML) (日本語 HTML)
QA1252: Describes how to configure Mac OS X as a PPPoE server for testing purposes.
Networking 2003-04-11
FSSetCatalogInfo versus UID and GID (HTML) (日本語 HTML)
QA1251: Describes why FSSetCatalogInfo does not set the UID and GID of the file, and provides a work around.
File Management 2003-03-26
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Graphics & Imaging, Performance, Printing 2003-02-25