C Language Tutorial for Cocoa

If you've been holding off on learning Objective-C because you didn't like the idea of reading a whole book about C first, this tutorial is the solution. If you know what a variable is and know what function is, we can quickly get you up to speed on the subset of ANSI C that you need for use in Cocoa.
June 04, 2004

Introduction to Cocoa Bindings

The Cocoa Bindings system is a toolset available in Panther which allows you to define relationships between user interface and data objects. This means a lot less code, and a lot more functionality for free. This tutorial walks you through the conversion of a standard application into a bindings application.
April 30, 2004

Cocoa and Perl — There's More Than One Way to Do It

The Cocoa development environment encourages the "Model-View-Controller" design pattern. This article demonstrates how Perl can serve as a resource for the "Model" components of Cocoa applications. The PerlObjCBridge makes it fairly easy to provide an Aqua interface to a Perl utility, or to add Perl's power to Objective-C in the "Model." [Tutorials: Regular];
Posted by Submission on November 01, 2003 [Feedback (4) & TrackBack (0)]

Building NSMenuExtra - A Small Tutorial

An easy tutorial on building an NSMenuExtra. [Tutorials: Regular];
Posted by Submission on October 09, 2003 [Feedback (9) & TrackBack (0)]

MyOneLineOfCodeBrowser using Cocoa and WebKit 1.0

This easy tutorial will introduce you to the new Cocoa Framework named Web Kit. Step by step you'll create a Web Browser with only 1 line of code. [Tutorials: Regular];
Posted by Submission on July 12, 2003 [Feedback (42) & TrackBack (6)]

Extend with Delegates

Today we'll talk about implementing delegates in our own classes. It's a relatively simple thing to do, but there are a couple gotchas that you have to watch out for. [Tutorials: Bare Basics];
Posted by Brad Miller on June 27, 2003 [Feedback (12) & TrackBack (0)]

Create a PDF

This tutorial shows you how to add export to PDF support to an application for single page and multi page documents. [Tutorials: Regular];
Posted by Brad Miller on April 19, 2003 [Feedback (3) & TrackBack (0)]

Beginning AppleScript Studio

A quick tutorial on getting started in AppleScript Studio, resulting in a working application. [AppleScript Studio];
Posted by Chris Garaffa on March 06, 2003 [Feedback (34) & TrackBack (4)]

Drag and Drop Destinations

A quick tutorial on how to implement the NSDraggingDestination informal protocol. This is what lets a view receive drag and drop operations. [Tutorials: Regular];
Posted by Jeff Disher on November 24, 2002 [Feedback (4) & TrackBack (0)]

Learn C with Project Builder

This tutorial shows you how to use Project Builder when learning to program. It covers creating a project, editing, compiling and debugging. [Tutorials: Bare Basics];
Posted by Brad Miller on November 16, 2002 [Feedback (30) & TrackBack (0)]

Making Other People's Software Work for You

This tutorial steps you through making a simple plugin and tells you how to build both plugins and applications that accept the capability. [Tutorials: Regular];
Posted by Submission on August 07, 2002 [Feedback (5) & TrackBack (0)]

Drop Shadows

This tutorial shows how to add drop shadows to the items drawn in a NSView using the ShadowView subclass. [Tutorials: Regular];
Posted by Brad Miller on August 03, 2002 [Feedback (6) & TrackBack (0)]

Checking the User's Mac OS X Version

This article describes how you would go about checking the user's version of Mac OS X, either to enable or disable a feature, or do other things. [Tutorials: Regular];
Posted by Submission on August 01, 2002 [Feedback (3) & TrackBack (0)]

Q&A: July 17, 2002

This edition of QA answers questions about initializing C-style arrays, accessing MySQL, alias resolving, menu extras, finding Cocoa answers with cocoa.mamasam.com and more. [Q & A];
Posted by Jeff Hunter on July 17, 2002 [Feedback (1) & TrackBack (0)]

Using Foundation Collections in Interface Builder

When you first played with Interface Builder, you may have tried briefly to create an array or a dictionary, and given up in disgust. Apple in its wisdom has not, as of Mac OS X 10.1.5, seen fit to add support for these fundamental classes to IB, and it is usually possible to work around this oversight. [Tutorials: Bare Basics];
Posted by Submission on July 14, 2002 [Feedback (0) & TrackBack (0)]

Debugging, Omni-Style

A quick overview of the simplest of the OmniFrameworks, including OBObject and the OBASSERT macros. [Tutorials: Regular];
Posted by Submission on July 07, 2002 [Feedback (0) & TrackBack (0)]

Q&A: June 21, 2002

In this installment we cover accessing MySQL databases from Cocoa apps, tools for examining Cocoa binaries, and a searchable archive of cocoa-dev posts which is extemely useful. [Q & A];
Posted by Jeff Hunter on June 21, 2002 [Feedback (0) & TrackBack (0)]

Mouse Events

This tutorial will add mouse events to the Rotate app to control the transformations. The translations will be controlled by normal mouse clicks and dragging. Rotation and scaling will both be controlled by either control clicking or by the right mouse button if the user has a multi button mouse. In addition, scaling will also depend on the shift key being pressed. [Tutorials: Regular];
Posted by Brad Miller on June 21, 2002 [Feedback (0) & TrackBack (0)]

Implementing A Basic HTML Help System Under Cocoa

It is very easy to implement a basic HTML help system in a Cocoa application. The Cocoa frameworks automatically provide your application with a help menu. This article is about hooking up your HTML help to work with that menu item. [Tutorials: Bare Basics];
Posted by Submission on June 02, 2002 [Feedback (1) & TrackBack (0)]

Understanding the design behind Cocoa's Foundation classes

Guidelines to help choose the right class to use in Cocoa's Foundation classes, as well as how to use them most effectively. [Tutorials: Regular];
Posted by Submission on June 01, 2002 [Feedback (0) & TrackBack (0)]

Implementing Cocoa's Standard About Panel

Implementing an "About Box" in Cocoa is very easy because Cocoa has a built-in "standard about panel" that is more than sufficient for most applications' needs and that does nearly all of the work for you. This tutorial describes how to use this standard about panel, including what types of information it needs and where to put this information in your application and in Project Builder. [Tutorials: Bare Basics];
Posted by Submission on May 01, 2002 [Feedback (2) & TrackBack (0)]

ABC's Archive Repository

Jiiva provides us with a new way to store resources. This article answers the questions "why and how". [Tutorials: Regular];
Posted by Andy Monitzer on April 08, 2002 [Feedback (0) & TrackBack (0)]

How to Create, Load, and Use Multiple Nib Files

How to use multiple Nibs in order to easily have multiple intances of resources loaded and running in your application [Tutorials: Regular];
Posted by Submission on March 28, 2002 [Feedback (0) & TrackBack (0)]

The Java Bridge

Don't think you have to use Java OR Objective C to program Cocoa. Just mix it! Now with additional information. [Java];
Posted by Andy Monitzer on March 17, 2002 [Feedback (14) & TrackBack (1)]

Q&A: March 16, 2002

We cover regular expression libraries, tools for searching developer documentation offline, Objective-C QuickTime wrappers, javadoc-like tools, opaque references, the [copy] message, UNIX signals, and more. [Q & A];
Posted by Jeff Hunter on March 16, 2002 [Feedback (0) & TrackBack (0)]

Getting Started With NSTableView

A short overview to providing a data source and customizing an NSTableView to your needs [Tutorials: Bare Basics];
Posted by Submission on February 09, 2002 [Feedback (9) & TrackBack (0)]

Using Transformations

Tutorial on using NSAffineTransform to perform transformations and ABCRotation to control the rotate transform. [Tutorials: Regular];
Posted by Brad Miller on January 30, 2002 [Feedback (0) & TrackBack (0)]

Using ASS to Access FileMaker

This tutorial shows how you can use AppleScript Studio to access a FileMaker database without much hassle. [AppleScript Studio];
Posted by Andy Monitzer on January 16, 2002 [Feedback (2) & TrackBack (0)]

Scrolling About Box

This tutorial explains how to make an About Box with scrolling credits. As an added bonus you will also learn how to make a Secret About Box. [Tutorials: Regular];
Posted by Brian Christensen on January 11, 2002 [Feedback (4) & TrackBack (0)]

Getting Started With Portable Distributed Objects (PDOs)

This tutorial will show you how to use Portable Distributed Objects to communicate between threads and processes, including a fairly involved example that will stretch beyond just this article. [Tutorials: Regular];
Posted by Submission on December 05, 2001 [Feedback (7) & TrackBack (0)]

Frameworks Within The App Bundle

This article explains how to include a framework inside of your application's bundle in order to avoid requiring installation of the framework by the user. [Tutorials: Regular];
Posted by Brian Christensen on November 13, 2001 [Feedback (12) & TrackBack (0)]

GUI-Less Applications

Event though Mac OS X is GUI-based, sometimes you just need something that requires the terminal. [Tutorials: Regular];
Posted by Andy Monitzer on November 12, 2001 [Feedback (0) & TrackBack (0)]

Creating a PreferencePane

An introduction on how to create a PreferencePane. [Tutorials: Regular];
Posted by Andy Monitzer on November 12, 2001 [Feedback (2) & TrackBack (0)]

Create a Preference Pane

This tutorial shows you how to create a preference pane that can be added to the System Preferences application. Specifically, a pane is created that allows you to control the position of the scroll arrows on the scroll bar and offers more options than what Apple provides in the General preferences. [Tutorials: Regular];
Posted by Jason Marr on November 09, 2001 [Feedback (1) & TrackBack (0)]

Q&A: November 4, 2001

This edition of QA answers questions about opening URLs, editing HTML in PB, string streams for STL, ejecting disks, Cocoa wrappers for BSD sockets, and much more. [Q & A];
Posted by Jeff Hunter on November 04, 2001 [Feedback (0) & TrackBack (0)]

How to Use Toolbars

This tutorial shows how to add a toolbar to a window and how to customize it. [Tutorials: Regular];
Posted by Brad Miller on November 04, 2001 [Feedback (8) & TrackBack (0)]

Running Multiple Threads in Cocoa

A quick intro to how to use Cocoa's NSThread class to create and destroy threads, and its synchronization classes to keep them from ruining each other's data. [Tutorials: Regular];
Posted by Submission on November 04, 2001 [Feedback (0) & TrackBack (0)]

Using the Property List Objects and the NSCoding Protocol

A tutorial with examples of using the XML-based property list methods and also the binary-encoded NSArchiver based methods to create persistent objects. [Tutorials: Regular];
Posted by Submission on October 29, 2001 [Feedback (0) & TrackBack (0)]

How to Make a Dock Menu

This tutorial shows how to add a custom dock menu to your application. [Tutorials: Regular];
Posted by Brian Christensen on October 27, 2001 [Feedback (0) & TrackBack (0)]

Debugging Cocoa Apps Using GDB, Assert, and More in Mac OS X

This article discusses debugging in Mac OS X using Unix tools like GDB, functionality like assert and NSLog/printf, and more. This is not for a Cocoa newbie, but should serve debugging newbies well. [Tutorials: Regular];
Posted by Submission on October 13, 2001 [Feedback (1) & TrackBack (0)]

How to Use Drawers

This tutorial describes how to attach a drawer to a window. [Tutorials: Bare Basics];
Posted by Brian Christensen on October 03, 2001 [Feedback (0) & TrackBack (0)]

Using Apple's PPP Library

Using Darwin's ppplib to connect, disconnect and receive PPP-events. [Tutorials: Regular];

How to Make a Full Screen App

This tutorial describes the steps necessary to make a full screen application. [Tutorials: Regular];

Installing OmniFrameworks

AppKit and Foundation are great, but your development power can be strengthened by using third-party frameworks. Read this article to get started with OmniFrameworks, a set of powerful frameworks from The Omni Group. [Tutorials: Regular];
Posted by Jeff Hunter on July 12, 2001 [Feedback (1) & TrackBack (0)]

Wrapping UNIX Commands Part II

Using NSTask's setStandardOutput: for displaying information from a command. [Tutorials: Regular];

Q&A: June 14, 2001

This edition of QA answers questions about formatters, file renaming, docklet icons, language settings, FSSpec conversion, inserting attributed text into a NSTextView, outlet connection rules, NSTabView reordering and random numbers. [Q & A];

Using Project Builder's 'Source Control Management' Features

Versioning is an important feature for many projects. This tutorial teaches you how to use versioning in your project. [Tutorials: Regular];
Posted by Submission on June 07, 2001 [Feedback (3) & TrackBack (0)]

Q&A: May 26, 2001

This edition of QA answers questions about images, exceptions, font anti-aliasing, processes, small controls, delegates and controllers, multiple windows and disabling menus. [Q & A];

Wrapping UNIX Commands

Using NSTask and an interface to help regular users. [Tutorials: Regular];
Posted by Andy Monitzer on April 29, 2001 [Feedback (6) & TrackBack (0)]

Q&A: April 18, 2001

This edition of QA answers questions about resource forks, initialization, pbxbuild, sendmail and drawing strings. [Q & A];
Posted by Andy Monitzer on April 17, 2001 [Feedback (0) & TrackBack (0)]

Writing a Screen Saver Module

This tutorial describes how to easily write a screen saver module. [Tutorials: Regular];

Q&A: April 09, 2001

This edition of QA answers questions about file packaes, LaunchServices, command key bindings, the time and pthreads. [Q & A];
Posted by Andy Monitzer on April 09, 2001 [Feedback (0) & TrackBack (0)]

Q&A: April 03, 2001

This edition of QA answers questions about window backgrounds, NSRange, circular dependancies, detached views, closing windows, the dmg-format and faceless background applications. [Q & A];
Posted by Andy Monitzer on April 03, 2001 [Feedback (0) & TrackBack (0)]

Packaging with Disk Images

How to create a disk image to distribute your applications [Tutorials: Regular];
Posted by Submission on March 20, 2001 [Feedback (0) & TrackBack (0)]

Advice on Learning C

Learning C is a good first step before learning Java or Objective-C. Presented here are some references and links to help you learn C as well as some advice for people who are used to learning scripting languages like AppleScript, Lingo, or Hypertalk. [Tutorials: Bare Basics];
Posted by Submission on March 20, 2001 [Feedback (3) & TrackBack (0)]

The Storage Series, Part Three

Dictionaries are more complicated than arrays, but if you know them they can be powerful companions. [Tutorials: Bare Basics];
Posted by Andy Monitzer on March 17, 2001 [Feedback (0) & TrackBack (1)]

Q&A: March 17, 2001

This edition of QA answers questions about vargs, constant strings, command line front end, converting CF to NS, timestamps and preferences. [Q & A];
Posted by Andy Monitzer on March 17, 2001 [Feedback (0) & TrackBack (0)]

The Storage Series, Part Two

Arrays can help storing lists of any data you want. Dynamic, static, whatever. [Tutorials: Bare Basics];
Posted by Andy Monitzer on March 07, 2001 [Feedback (0) & TrackBack (1)]

The Storage Series, Part One

Storage is one of the most common problems of programming. Cocoa solves this very well, so read this before you get caught in dynamic linked lists... [Tutorials: Bare Basics];
Posted by Andy Monitzer on March 07, 2001 [Feedback (0) & TrackBack (1)]

Q&A: March 04, 2001

This edition of QA answers questions about NSTextFields, saving documents, SIGSEGVs and Carbon calls. [Q & A];
Posted by Andy Monitzer on March 04, 2001 [Feedback (0) & TrackBack (0)]

Q&A: February 28, 2001

This edition of QA answers questions about OpenTransport replacements in Cocoa, date formats, getting keyboard input, crashing NSTableViews and converting integers to NSStrings. [Q & A];
Posted by Andy Monitzer on February 27, 2001 [Feedback (0) & TrackBack (0)]