Re: Editing NSOutlineView Group Item
Re: Editing NSOutlineView Group Item
- Subject: Re: Editing NSOutlineView Group Item
- From: Luther Baker <email@hidden>
- Date: Sun, 02 Nov 2014 22:18:46 -0600
So, before we get to the 'group' question - I seem to be having some
difficulty with the item specific API. If I change the call from reloadData
to reloadItem ... and if we consider reloading the selected row ... then:
[outlineView reloadItem:selectedObject reloadChildren:YES or NO];
invokes (in order)
[outlineView:ov isItemExpandable:selectedItem]; /// return NO, bcs it
is a leaf
outlineView:ov child:1 ofItem:nil /// return selectedItem ... bcs it is
the one we are reloading
outlineView:ov isItemExpandable:selectedItem /// NO, bcs it is a leaf
done .... nothing happens, no refresh
when I instead use
outlineView reloadDataForRowIndexes:columnIndexes /// it works
[outlineView reloadItem:nil] also works fine
the first one invokes
[outlineView:ov viewForTableColumn:tableColumn item:selectedItem]
straight away ... and therefore works to refresh the display -- while the
second way kicks off
[outlineView:ov numberOfChildrenOfItem:nil]
also working - proceeding through all the rows.
Seeing as this is a view based NSOutlineView ... do I need to somehow
invalidate the cell view? reloadItem starts the process but it gets cut
short somehow -- maybe by a method I don't implement and I'm not breaking
on? Other people have had a similar experience ...
http://stackoverflow.com/questions/19963031/nsoutlineview-reloaditem-has-no-effect
but I'm afraid we must be missing something.
As an aside, right now I don't have a deep enough test data set to see if I
simply need to load the parent or if I need to reload the entire table ....
Thanks,
-Luther
On Sun, Nov 2, 2014 at 4:42 PM, Luther Baker <email@hidden> wrote:
> Indeed ... I was incorrectly using reloadDataForRowIndexes:columnIndexes:
> ... and not reloadItem:reloadChildren.
>
> Thank you,
> -Luther
>
>
> On Sun, Nov 2, 2014 at 4:35 PM, Graham Cox <email@hidden> wrote:
>
>>
>> On 3 Nov 2014, at 9:18 am, Ken Thomases <email@hidden> wrote:
>>
>> > This is not correct. Group items are items for which the delegate
>> returns YES from -outlineView:isGroupItem:. They can have children or not.
>>
>>
>> Yes, my misunderstanding - I've only used group rows for section
>> labelling (no children).
>>
>> > All of the mentions of reloading a _row_ in the above show the
>> misunderstanding.
>>
>> Yup. Though NSOutlineView subclasses NSTableView, the table view methods
>> shouldn't be used for reloading where a special outline view method has
>> been provided. That would be -reloadItem:reloadChildren:
>>
>> --Graham
>>
>>
>>
>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden