Re: How to find the name of the tab view item if you have one of its sub-views(sub-sub-views)?
Re: How to find the name of the tab view item if you have one of its sub-views(sub-sub-views)?
- Subject: Re: How to find the name of the tab view item if you have one of its sub-views(sub-sub-views)?
- From: Andrei Tchijov <email@hidden>
- Date: Mon, 13 Mar 2006 18:20:48 -0500
Sorry, forget to mention that I have more then one tab view (and I
need to "find" the right one as well).
On Mar 13, 2006, at 5:59 PM, Mike Abdullah wrote:
OK, how about something like:
NSEnumerator *tabItemsEnumerator = [[MyTabView tabViewItems]
objectEnumerator];
NSTabViewItem *tabItem;
// Run through each tab view and see if the view we have been given
is a descendant
while (tabItem = [tabItemsEnumerator nextObject])
{
if ([viewToTest isDescendantOf: [tabItem view]])
return tabItem;
}
Hope that helps,
Mike.
On 13 Mar 2006, at 22:46, Andrei Tchijov wrote:
Yes. Typically I am getting reference to "particular view" as a
sender parameter to an action. What exactly action will do,
depends on on which "tab" this sender located.
On Mar 13, 2006, at 5:40 PM, Mike Abdullah wrote:
To clarify, are you saying that your app knows of a particular
view, and you would to find out which tab of your tab view it is in?
Mike.
On 13 Mar 2006, at 20:36, Andrei Tchijov wrote:
In my application I need to get reference to NSTabViewItem
object starting with its sub-sub-view. Firstly, I tried to
traverse views hierarchy via "[ view superview ]", but soon
discovered that NSTavViewItem object could not be found this
way. After some tinkering I come up with this :
...
id superview = [ startView superview ];
id subview = startView;
while (( superview != nil ) && ( ! [ superview isKindOfClass:
[ NSTabView class ]] )) {
subview = superview;
superview = [ superview superview ];
}
NSArray* tabViewItems = [ superview tabViewItems ];
for( int i = 0; i < [ tabViewItems count ]; i++ ) {
if( [[ tabViewItems objectAtIndex: i ] view ] == subview ) {
subview = [ tabViewItems objectAtIndex: i ];
break;
}
}
...
It works, but does not look right. I can not believe that there
is no better(simplier) way of doing it.
Any comments, suggestions will be highly appreciated
Andrei Tchijov
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40gmail.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden