Re: NSScroller will be visible even it is below other view in 10.4
Re: NSScroller will be visible even it is below other view in 10.4
- Subject: Re: NSScroller will be visible even it is below other view in 10.4
- From: Andrew Merenbach <email@hidden>
- Date: Sun, 21 Sep 2008 19:47:13 -0700
Hi!
The class reference documentation for NSScroller has, as one of the
listed methods:
drawArrow:highlight:
Draws the scroll button indicated by arrow, which is either
NSScrollerIncrementArrow (the down or right scroll button) or
NSScrollerDecrementArrow (up or left).
- (void)drawArrow:(NSScrollerArrow)arrow highlight:(BOOL)flag
Discussion
If flag is YES, the button is drawn highlighted; otherwise it’s
drawn normally. You should never need to invoke this method
directly, but may wish to override it to customize the appearance of
scroll buttons.
Availability
Available in Mac OS X v10.0 and later.
See Also
– drawKnob
– rectForPart:
Declared In
NSScroller.h
I've never done this before, but this is likely the method, or at
least one of the methods, that you'd want to override to customize the
scroller's appearance. In order to use this, you'd call super's
implementation, then after that you'd draw your own image. You would
not, under almost any circumstances, use an NSImageView for your
custom image on top of the NSScroller, but would rather, most likely,
draw the image directly. I'm not sure, unfortunately, how much
control this gives you over the arrow appearance, but it certainly
seems like a start.
Cheers,
Andrew
On Sep 21, 2008, at 7:27 PM, email@hidden wrote:
Hi,
The scroller means NSScroller... Yes, I want to draw over the arrow.
What I want to implement feels like *LAYERS*, though there are no
layers actually.Layer1 has a NSScroller in it. Layer2 has a
NSImageView in it. I don't want to see layer1 when layer2 is on top
of it.
Hope I have made it clear.
;-)
Thanks!
Qi Liu
Andrew Merenbach <email@hidden>
09/22/08 10:00 AM
To
email@hidden
cc
email@hidden
Subject
Re: NSScroller will be visible even it is below other view in 10.4
Greetings!
When I mentioned having an image view (in a borderless window) on top
of your scroll view, I meant an actual window which has nothing
besides an NSImageView inside of it. You would make the window
borderless -- so that no title bar or close/minimize/zoom buttons will
be displayed -- and then make set the window's alpha such that its
background will be only partially opaque. Once you place an image
inside the window;s image view, it will appear to "hover" on the
screen.
Now, it's entirely possible that this doesn't fit your request. In
order to help, may we request a couple of clarifications? First, you
say "place an image view on top of the scroller" -- by that you
*could* mean a few things. If by "scroller" you mean "scroll view,"
then the above idea might work; if by "scroller" you mean an
NSScroller -- a scroller arrow, or whatever you wish to call it --
then you have a different issue entirely. I am beginning to think
that this is what you mean, since you ask about "a button that... can
cover the scroller."
If you wish to draw over the arrow, I'm not sure that there's a
supported way, short of making your own scroller and implementing its
logic entirely from start to finish.
In short, do you wish to draw an image on top of the scrollable view
inside the scroll view? or do you want to replace or draw over the
*arrow image*?
Thanks!
Cheers,
Andrew
On Sep 21, 2008, at 6:38 PM, email@hidden wrote:
> Hi Andrew,
> Yeah, that is what I mean. But I am not sure if I understand your
> suggestion correctly, you mean I change the imageview's
> autoResizingMask?
> Since my app sometimes has to place the imageview on top of the
> scroller, now I can only set the scroller hidden when the imageview
> is on
> top of it to avoid seeing the scroller.
> PS: I find a button that draws its background can cover the
> scroller, is
> this because the button cell?
>
> Regards,
> Qi Liu
>
>
>
>
> Andrew Merenbach <email@hidden>
> 09/19/08 03:13 AM
>
> To
> email@hidden
> cc
> email@hidden
> Subject
> Re: NSScroller will be visible even it is below other view in 10.4
>
>
>
>
>
>
> On Sep 18, 2008, at 3:53 AM, email@hidden wrote:
>
>> Hi all,
>> I found a tricky thing in Tiger: In Nib file, I have a NSScrollView
>> in
>> the window, and I put an NSImageView all above it, for I don't want
>> to see
>> the scrollView. But when window shows, I can see the scroller! In
>> Leopard,
>> the imageview covers the scroller. Did I miss something?
>> Thanks in advance!
>
> Hi! I'm not sure that I understand you correctly, but if I do: All
> versions of Mac OS X before Leopard do *not* enforce clipping among
> sibling subviews. Unless you're using Leopard, therefore, it is not
> at all supported to place an image view *on top of* a scroll
view. Is
> this what you meant?
>
> If you need to have the image view on top of the scroll view in
Tiger,
> and there are no other options, I might suggest a borderless window
> that contains the image view, and configure it such that it will
move
> along with the main window.
>
> Cheers,
> Andrew
>
> _______________________________________________
>
> 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
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
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