I'm thinking about the perception of the user. When I'm in Mail.app, for example, clicking in the outlineView (organized by thread) and I click on a row it feels less responsive because there's a pause before the row highlights (a pause until I release the mouse button). When I'm in iTunes and the row highlights as soon as the mouse button is down is just feels more responsive.
I put in NSLog calls to show me when "proposed" and "didChange" get called. NSTableView's delegate gets called on mouseDown while NSOutlineView on mouseUp. On May 12, 2011, at 2:06 PM, Quincey Morris wrote: > On May 12, 2011, at 10:05, Brad Stone wrote: > >> For my NSTableView (NSIndexSet *)tableView:(NSTableView *)tableView >> selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes >> fires on mouseDown and (void)tableViewSelectionDidChange:(NSNotification >> *)aNotification fires on mouseUp. >> >> For my NSOutlineView (NSIndexSet *)outlineView:(NSOutlineView *)outlineView >> selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes >> and (void)outlineViewSelectionDidChange:(NSNotification *)notification fire >> only on mouseUp. > > This can't be true. > > For a start, thinking of the delegate methods as "firing" on mouse events > seems like a way to lead yourself astray. There are *various* ways to change > a selection, only some of which start at a mouse down event, and the delegate > methods are invoked at *various* points in the procedure depending on > circumstances, no matter how it starts. (Well, ...DidChange presumably gets > invoked only at the end, but what constitutes the end may vary.) > > Specifically, if NSOutlineView's 'selectionIndexesForProposedSelection:...' > method wasn't ever called until a mouse up event (after an initial mouse > down, I mean), it wouldn't be possible to prevent rows from getting selected > while the mouse is being dragged, and it *is* possible to do so. > > There may be specific scenarios where the view decides not to invoke the > delegate until mouse up, but that fact just demonstrates the pointlessness of > trying to parse the mouse event behavior. > > _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com