This could be a good solution, I'll give it a shot - thanks. Still a bit 
annoying that the "obvious" way should be broken for no very good reason that I 
can see.
--Graham




On 12 Jun 2014, at 11:09 am, Lee Ann Rucker <lruc...@vmware.com> wrote:

> In my cell-based table I created an empty menu whose delegate was the 
> outlineView, then implemented menuNeedsUpdate:, and it didn't need to change 
> for view-based. I think it came from Apple sample code originally, and is 
> basically
> 
>  NSInteger clickedRow = [outlineView clickedRow];
>  if (clickedRow != -1) { // -1 means empty row
>      item = [outlineView itemAtRow:clickedRow];
>     [self updateMenu:menu forItem:item];
>  }
> 
> and updateMenu:forItem: swaps out all of menu's contents for what that item 
> needs. There's also another menu with the general outlineView contents, and 
> if I need that one I do the same swap.
> 
> On Jun 11, 2014, at 5:55 PM, Graham Cox wrote:
> 
>> I'm having trouble getting contextual menus to work in a view-based 
>> NSOutlineView.
>> 
>> I can set a menu on the whole outline view and that works, but I also need 
>> to have menus for each row. Setting a menu on the NSTableCellView subclass 
>> in IB doesn't work at all - it seems as if the menu isn't copied when the 
>> view is instantiated from the nib (the -menu property is nil on the view 
>> instance). But if I override -menu, or -menuForEvent: and return something, 
>> it is still not used. In fact those methods are never invoked. If I do the 
>> same on the NSTableRowView subclass, then the menu shows, but only if I 
>> click in areas that are not occupied by views within my cell view, which is 
>> not useful. If the table row gets the menu highlight, then the menu doesn't 
>> show (and the -menu method on the row isn't invoked).
>> 
>> I did get this working in a cell-based outline view a few years ago, but 
>> with a view-based OV, I can't find the magic fairy dust I need. The simplest 
>> way would be just to set up the view's menu in IB, but it seems that's 
>> broken or overlooked in the OV implementation. Can anyone suggest a 
>> workaround other than those I've tried?
>> 
>> --Graham
>> 
> 


_______________________________________________

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