> On 2014 Sep 16, at 10:29, Jens Alfke <j...@mooseyard.com> wrote:
> 
> Maybe it's the animation that ends up dereferencing all the rows? I forget 
> whether there's a way to disable the animations on an NSOutlineView …

I can’t find any such control, Jens.

* * *

Apparently, *someone* inside Apple knows how to make blazing fast outline view, 
but they don’t always use that knowledge…

• Activate Safari.
• Type ⇧⌘L, to show the Sidebar.
• In the Sidebar, select the middle tab (Reading List)
• Create a folder containing 18,000 bookmarks as immediate children.  It’s OK 
if many of them are duplicates.  (I have seen users with 10,000 - 15,000 like 
this.)
• Move that folder to the root level, near the top, so it will be readily 
visible when the “Edit Bookmarks” view opens.
• In Safari > Preferences > General, set “New windows open with” and “New tabs 
open with” to empty page.
• Close all windows.
• Quit Safari.
• Relaunch Safari.
• Quickly, type ⌥⌘B, to “Edit Bookmarks”.  The Edit Bookmarks outline view 
appears immediately.
• Quickly again, find your big folder, and click its disclosure triangle, to 
expand it.  The folder expands immediately, and will scroll as fast as you can 
swipe.
• Type ⇧⌘L, to show the Sidebar.
• In the Sidebar, select the left tab (Bookmarks).  Safari may beachball for 
about a minute, if it thinks that your big folder should be expanded.
• If it beachballed and your big folder in the Sidebar is expanded, collapse it.
• Click your big folder's disclosure triangle (again), to expand it.  Safari 
will beachball for about a minute before showing the 18,000 bookmarks.

If you sample Safari during the beachballing, you’ll see that the cost is in
    -[BookmarksSidebarViewController outlineView:child:ofItem:]

Presumably BookmarksSidebarViewController is the data source for the outline 
view in the sidebar.  This is the same issue shown in the demo app mentioned in 
my previous post, and the same issue I’m seeing in my actual app.  But the fact 
that the Edit Bookmarks view can expand a huge folder immediately within 
seconds of launch seems to prove that there is a solution.  Of course, maybe 
it’s not an NSOutlineView.







_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to