Skip to content
This repository has been archived by the owner on Jan 18, 2023. It is now read-only.

2.0.0

Compare
Choose a tag to compare
@alexrozanski alexrozanski released this 29 Jan 15:16
· 33 commits to master since this release

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:

Bugfixes

  • 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 ;)