Re: NSScroller question
Re: NSScroller question
- Subject: Re: NSScroller question
- From: email@hidden
- Date: Fri, 28 Mar 2008 02:17:49 +0100
Yes, I meant scroller, not slider. Just had a glass of wine too much :-)
Actually I don't want to add an accessory view, I want to get rid of
the one that appears to be there by default. I have attached a
screenshot showing what I'm talking about. The yellow part is the
knob, drawn by filling the rect return by calling [self
rectForPart:NSScrollerKnob]. The green part is the slot, [self
rectForPart:NSScrollerKnobSlot]. The white part above the slot is by
default black, but here I made it white by filling the rect returned
by calling [self rectForPart:NSScrollerNoParts].
I can move the knob/slot upwards by tampering with their designated
rects ("rect.origin.y -= 5"), thus hiding the white part. But that
messes up the drawing when the view is updated.
I figured the white part was a view, but since you are telling me
NSScroller has no subviews I really don't know what to think. Maybe
there is something wrong with my implementation?
@implementation TestScroller
- (void)drawRect:(NSRect)rect
{
[self drawKnobSlot];
[self drawKnob];
}
- (void)drawKnob
{
NSRect rect = [self rectForPart:NSScrollerKnob];
[[NSColor yellowColor] set];
[NSBezierPath fillRect:rect];
}
- (void)drawKnobSlot
{
NSRect rect = [self rectForPart:NSScrollerKnobSlot];
[[NSColor greenColor] set];
[NSBezierPath fillRect:rect];
}
@end
On Fri, Mar 28, 2008 at 12:41 AM, Troy Stephens <email@hidden> wrote:
>
> On Mar 27, 2008, at 4:26 PM, email@hidden wrote:
> > Thanks, but the corner view is the right side corner of the header
> > view, right? I was talking about the small view just below it, on top
> > of the vertical slider and part of the slider itself. It's a tiny view
> > of about 2 pixels height. I believe it corresponds to
> > NSScrollerNoPart, but I'm not sure.
>
> (By "slider" I take it you really mean "scroller", as NSSlider is
> something else entirely. :-)
>
> An NSScroller (currently) has no subviews, but if your aim is to add
> one or more accessory views above the scroller, that can be done by
> subclassing NSScrollView. The key is to override NSScrollView's -tile
> method to invoke [super tile], and then adjust the layout to
> accommodate your accessory subview(s). Figure out where you want your
> accessory subview(s) to go, set their frame(s), and change the
> ScrollView's verticalScroller's frame (shrink and move down, since
> ScrollViews are flipped) to make room for them.
>
>
>
> >
> >
> > On Thu, Mar 27, 2008 at 9:53 PM, Troy Stephens <email@hidden>
> > wrote:
> >>
> >> On Mar 27, 2008, at 9:50 AM, email@hidden wrote:
> >>> Hi,
> >>>
> >>> NSScroller has a small view, by default two pixels high, just above
> >>> the scroller and below the NSTableHeaderView's corner view. How
> >>> can I
> >>> get at this view? If you look at the XCode interface you can see
> >>> they
> >>> have put an icon in this view (the one that splits the editor view)
> >>> and made it larger. I would like to remove the view completely so
> >>> the
> >>> scroller goes all the way up to the edge of the corner view.
> >>>
> >>> This question has been addressed before in the archives, but
> >>> unfortunately the link pointing to an answer is no longer valid.
> >>>
> >>> Thanks.
> >>> F.
> >>
> >> See NSTableView.h:
> >>
> >> /* Get and set the cornerView. The cornerView is the view that
> >> appears
> >> directly to the right of the headerView above the vertical
> >> NSScroller.
> >> The scroller must be present for the cornerView to be shown.
> >> Calling -
> >> setCornerView: may have the side effect of tiling the
> >> enclosingScrollView to accomodate the size change. The default value
> >> is an internal class that properly fills in the corner.
> >> */
> >> - (void)setCornerView:(NSView *)cornerView;
> >> - (NSView *)cornerView;
> >>
> >> --
> >> Troy Stephens
> >> Cocoa Frameworks
> >> Apple, Inc.
> >>
> >>
> >>
> >>
>
>
> --
> Troy Stephens
> Cocoa Frameworks
> Apple, Inc.
>
>
>
>
Attachment:
Picture 2.png
Description: PNG image
_______________________________________________
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