Thanks, Corbin - to summarize for posterity, the implementation of

- (BOOL)outlineView:(NSOutlineView *)ov shouldSelectItem:(id)item

is using -clickedColumn and -clickedRow to determine the location of the
click, and not selecting the row (returning NO) if the cell in that location
is an enabled NSButtonCell.  I had originally discarded this approach
because of this line in the documentation for -clickedColumn:

" The return value of this method is meaningful only in the target¹s
implementation of the action or double-action method."

Apparently this statement is no longer true.

Thanks for the help!

Dan



On 4/27/09 6:17 PM, "Corbin Dunn" <corb...@apple.com> wrote:

> On Apr 27, 2009, at 1:43 PM, Dan Rowley wrote:
> 
>> Hello - I've done multiple searches and seen this topic discussed,
>> but none with a solution that doesn't feel like a hack.  I have an
>> NSTableView, and one column that contains an NSButtonCell.  I would
>> like the user to be able to interact with this cell without the
>> selection in the table changing.  In the documentation for -
>> tableView:shouldTrackCell:forTableColumn:row: , it says "For
>> example, this allows you to have an NSButtonCell in a table which
>> does not change the selection, but can still be clicked on and
>> tracked," yet I'm not exactly sure how to actually achieve this end.
>> 
>> I return YES from the delegate method, then indeed my button works
>> correctly (the data source gets the expected setObjectValue
>> message), but the selection of the table also changes.  The obvious
>> first solution is to override tableView:shouldSelectRow:, yet this
>> gets sent BEFORE shouldTrackCell, so I'm not really sure where to go
>> from here. Do I have to gawk at the current mouse event in
>> shouldSelectRow: and return NO if it appears that the mouse went
>> down in the button cell?  This feels harder than it ought to be.
>> 
>> Am I missing something painfully obvious?
> 
> the DragNDropOutlineView example does this on Leopard. If after
> checking it out you still have questions, then please repost.
> 
> 
> corbin
> 
> 


_______________________________________________

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

Reply via email to