Skip to content

Differ does not perform row reloading if the changes is happening on same row. (macOS) #86

@martindufort

Description

@martindufort

Hey there,

I've started implementing Differ in our app to drive changes to our TableView.
As our app needs to support 10.15+, we cannot use the native DiffableSource implementation.

So using extendingDiff and patch, I realized that the current AppKit extension that applies the patch to the NSTableView is not using the reloadData(forRowIndexes: IndexSet, columnIndexes: IndexSet) when changes are applicable to a single row.

Here's our patch description:

EmailList DiffPatch [D(4), I(4,<Ocean.EmailListSource: 0x600002d323c0>)]

Why is this important?

By using Delete and Insert, if the selected row was 4, then it is automatically deselected.
This behavior, instead of using reloadDate(forRow...) makes for a pretty bad UX in our case.

Any suggestions on how to circumvent that? Thanks

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions