Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
96 lines (80 sloc) 5.77 KB

PXSourceList Release Notes


  • Remove -setFlipped: call which was causing a deprecation warning on OS X 10.10.
  • Fix whitespace in PXSourceList.m.


  • Merge PR #49: Fix PXSourceListBadgeCell accessibility. Adds accessibility for PXSourceListBadgeCell when using PXSourceList in view-based mode.


  • Fix #43: sourceListDeleteKeyPressedOnRows: called twice. This was caused by an issue where PXSourceList was incorrectly removing the old delegate as an observer of PXSourceList notifications in -setDelegate:.


  • PR #41: fix a Zeroing Weak References problem. This fixes an issue where using an NSWindow, NSWindowController or NSViewController as a PXSourceList delegate or dataSource would cause problems on 10.7 because prior to 10.8, these classes could not be referenced by zeroing weak references.
  • Remove unused badgeMargin constant from PXSourceList.m.


  • Fix #40: Editing titles on cell based source list causes exception.
  • Fix issue in view-based source list example where items created with the add button couldn't be dragged.


  • Fix #39: Badges not drawn correctly when Source List row is selected.


  • Add missing note to the 2.0.0 release notes about marking -[PXSourceList delegate] and -[PXSourceList dataSource] as unavailable using __attribute__.


New Features

  • Added support for view-based mode to PXSourceList, whilst retaining legacy cell-based support. (View-based delegate methods added are detailed below).
  • Added a new view-based Source List example target which includes an example of how to use drag-and-drop in the Source List.
  • Added PXSourceListTableCellView, an NSTableCellView subclass which is useful when using PXSourceList in view-based mode.
  • Added PXSourceListBadgeView, which can be used in PXSourceListTableCellViews to display badges. This class's drawing is done by the internal PXSourceListBadgeCell class.
  • Added a generic PXSourceListItem data source model class which can be used for easily constructing data source models without having to implement your own class.

API Changes

  • *Incompatible change. Marked -[PXSourceList delegate] and -[PXSourceList dataSource]` as unavailable using the “unavailable” __attribute__. These methods shouldn’t be used because of the internal implementation of PXSourceList, and have been documented as such since version 0.8. However, adding this __attribute__ is more robust because a compile-time error will be generated if you use either of these methods.
  • Added view-based Source List delegate methods to PXSourceListDelegate, namely:
    • -sourceList:viewForItem:
    • -sourceList:rowViewForItem:
    • -sourceList:didAddRowView:forRow:
    • -sourceList:didRemoveRowView:forRow:
  • Added missing PXSourceListDelegate methods which map to their NSOutlineViewDelegate counterpart methods, namely:
    • -sourceList:toolTipForCell:rect:item:mouseLocation:
    • -sourceList:typeSelectStringForItem:
    • -sourceList:nextTypeSelectMatchFromItem:toItem:forString:
    • -sourceList:shouldTypeSelectForEvent:withCurrentSearchString:
  • Moved the Source List delegate notification methods that were previously part of an NSObject category into PXSourceListDelegate. The methods affected are:
    • -sourceListSelectionIsChanging:
    • -sourceListSelectionDidChange:
    • -sourceListItemWillExpand:
    • -sourceListItemDidExpand:
    • -sourceListItemWillCollapse:
    • -sourceListItemDidCollapse:
    • -sourceListDeleteKeyPressedOnRows:


  • Fixed a huge bug where several delegate methods which weren't being called in version 0.x and 1.x of PXSourceList, by removing explicit implementations of NSOutlineViewDelegate methods in PXSourceList which are now forwarded using a shiny new proxy-based implementation. The stub method implementations removed from PXSourceList are:
    • -outlineView:numberOfChildrenOfItem:
    • -outlineView:child:ofItem:
    • -outlineView:isItemExpandable:
    • -outlineView:objectValueForTableColumn:byItem:
    • -outlineView:setObjectValue:forTableColumn:byItem:
    • -outlineView:itemForPersistentObject:
    • -outlineView:persistentObjectForItem:
    • -outlineView:writeItems:toPasteboard:
    • -outlineView:writeItems:toPasteboard:
    • -outlineView:validateDrop:proposedItem:proposedChildIndex:
    • -outlineView:acceptDrop:item:childIndex:
    • -outlineView:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:
    • -outlineView:pasteboardWriterForItem:
    • -outlineView:draggingSession:willBeginAtPoint:forItems:
    • -outlineView:draggingSession:endedAtPoint:operation:
    • -outlineView:updateDraggingItemsForDrag:
    • -outlineView:shouldExpandItem:
    • -outlineView:shouldTrackCell:forTableColumn:item:
    • -outlineView:heightOfRowByItem:
    • -outlineView:selectionIndexesForProposedSelection:
    • -outlineView:dataCellForTableColumn:item:
    • -outlineView:willDisplayCell:forTableColumn:item:
  • Fixed the PXSourceList framework's CFBundleIdentifier. It should have been com.alexrozanski.PXSourceList.

Documentation, Documentation, Documentation

  • Updated documentation for all public members of PXSourceList and its related classes and protocols.
  • Added documentation for new classes and PXSourceListDelegate methods.
  • Added documentation for PXSourceList delegate notifications.
  • Added a Documentation target to the Xcode project, which can be used to build documentation from source using appledoc.

Other Changes

  • Removed SourceListItem from the old example project as it has been superseded by PXSourceListItem.
  • Removed the TODO.rtf file from the project as all issues are now being tracked through GitHub.
  • Upgraded the Xcode project to the Xcode 5 project format. LastUpgradeCheck was updated from 0450 to0500.
  • Added a Release Notes file ;)