Skip to content

0.3.1

Choose a tag to compare

@Mx-Iris Mx-Iris released this 05 Sep 09:44
· 8 commits to main since this release

Fixes

  • rowViewProvider was never consulted by NSOutlineView, on either data source and in
    both languages. AppKit caches a delegate's capabilities when the delegate is set, which the
    data source does in its initializer — before a provider can exist — and the delegate
    interceptor only claimed outlineView:rowViewForItem: while a provider was installed.
    Custom row views now appear. Section rows never reach the item-typed provider: they go to
    your own delegate if it implements outlineView:rowViewForItem:, otherwise AppKit builds
    its regular NSTableRowView.
  • Reading difference on NSDiffableDataSourceTransaction or
    NSDiffableDataSourceSectionTransaction from Swift trapped with
    "Failed to cast difference". The typed difference is now produced by bridging through
    NSOrderedCollectionDifference.
  • Applying a top-level snapshot that moved an item to another section — or under another
    parent — without changing the order of the visible rows showed the item twice: once in its
    new place and once, stale, in its old one. Both the section-snapshot rebaser and the row
    update engine worked from a flat diff that cannot see such a move; both now follow the
    item's container. A parent moved together with its expanded children across sections no
    longer raises "Duplicate item identifiers", and the moved parent stays expanded, so the
    destination shows exactly what the top-level snapshot lists there.

No API changed and nothing is deprecated. Each fix ships with a regression test that failed
first, and the diffable data sources — the Objective-C facades, the Swift overlays, the
implementation, the rebaser and the tree snapshotter — are now covered member by member.

Warning

AppKitPlus is in testing. No API or ABI stability is promised.
Any release may remove classes, change type layouts, or change protocol requirements, with no
deprecation period. Pin an exact version and read these notes before upgrading.

Installation

.package(url: "https://github.com/AppKitSupportProgram/AppKitPlus-Release", from: "0.3.1")

Artifact

Platform macOS 12.0+
Architectures arm64, arm64e, x86_64
Built with Xcode 26.6 Build version 17F113
SHA-256 779b34e858b4e098019ba378a7f541a2c8a63c2f3d81b4c895ad55130ddbdaeb