Valid XHTML 1.0 Strict » Cocoa Components

All components here are open-source and BSD- or MIT-licensed.

Many of these components are available on multiple open-source hosting sites because I'm not sure which sites provide the best opportunity for people to see them, use them, and contribute to them. Also, while I primarily use mercurial, I can use hg-git to work with GitHub and others can use git and subversion to work with those same GitHub repos. While I will do my best to keep any linked repos in sync, the first (leftmost) repo listed should be considered the authoritative repo.


A Cocoa framework for communicating with LiveJournal.

asLJCore2 requires OS X 10.6 Snow Leopard or newer and is not entirely compatible with older versions of asLJCore.

The original asLJCore [ Google Code | BitBucket | GitHub ], which is compatible with OS X 10.5 Leopard, is based on the Cocoa XML-RPC Framework, Copyright © 2010 Eric Czarny [license] [my fork].


An NSDatePicker subclass (Cocoa) that passes the keyDown: event to the next responder if the key is the escape key.


A WebView subclass (Cocoa) that uses its own private cookie store. Blog entry.

As per this StackOverflow answer, this is a WebView subclass that automatically instantiates a resource loading delegate (a private class), which implements webView: resource: willSendRequest: redirectResponse: fromDataSource: to block normal cookie handling and insert the proper cookies and webView: resource: didReceiveResponse: fromDataSource: to capture returned cookies. Cookies are only stored in memory, not written to disk, and each instance has its own cookie storage, so cookies only exist while the instance of IGIsolatedCookieWebView exists and only exist for a particular instance of IGIsolatedCookieWebView.


An NSComboBox subclass (Cocoa) that allows drag-resizing of the combo box pop-up. Blog entry.

NSComboBox generates its pop-up by creating a special NSWindow subclass, NSComboBoxWindow. This pop-up window has an NSScrollView (or subclass thereof) as its content view and uses that to display the choices and (if needed) the scrollbar (via an NSComboTableView, which is a subclass of NSTableView).

IGResizableComboBox inserts its own NSView subclass as the content view of the NSComboBoxWindow and puts the NSScrollView as a subview of this NSView. This NSView is slightly taller than the NSScrollView and the NSView captures mouse dragging events on this extra space to allow resizing.



NSTextView subclass that has an IBOutlet to point at an NSView to which first-responder status should be given when shift+tab is pressed in the TextView. (Based on an idea from a blog post by Adam Knight.)


A Cocoa class to decode YEnc-encoded data.