Thanks - that's pretty much what I am going to do.  I will move the objects
that need transparency to NSImageView today, and then once we get this
version out for demo purposes, I will start rewriting the tools I needed
from IKImageView.
Shame, really, I've wasted days on IKImageView.  The docs don't really tell
you that they don't support transparency, that I can see.  I also can't see
why it can draw a grid behind the image, but won't let me specify the bitmap
to draw behind it, surely that would be trivial for the authors of the class
to do.

Christian

On Wed, Feb 11, 2009 at 2:19 AM, Steve Christensen <puns...@mac.com> wrote:

> I understand that IKImageView respects the alpha channel of the image. My
> suggestions were directed at seeing if it was possible to make the view's
> background transparent. From some of the other replies it sounds like that's
> not possible, or at least, not very easy to do.
>
> Depending on what you're trying to do overall, you could also create your
> own custom view that has a transparent background and apply a
> NSAffineTransform before drawing the image to cause it to rotate, scale,
> flip, whatever...
>
>
> On Feb 10, 2009, at 12:44 AM, Christian Graus wrote:
>
> OK - I've overridden isOpaque and I am returning NO.  This method is being
> called, so I am sure I've done that bit right.  In the same code, I added
> code to set the background color to clearColor ( net result is that the
> background is black ) or used the code you gave me earlier ( net result is,
> the background is white ).  It seems there is no way to get the control to
> draw itself transparently, even though it plainly knows how to draw with
> respect to the alpha in the png, turning on the grid option makes that
> clear.  Is there a method I can override, and then take a screen shot of my
> background, and make that the image behind the image drawn on the control ?
> I am adding an IKImageView derived class onto my main window in the XIB (
> I've actually tried just adding it in code, too ) and I need this class for
> the paint tools it gives me access to.  So, if the control does not support
> being transparent, I need to find a way to fake it.
> Thanks
>
> Christian
>
> On Tue, Feb 10, 2009 at 11:25 AM, Steve Christensen <puns...@mac.com>wrote:
>
>> Sorry, I misread your original posting. You're trying to make the view
>> transparent, not the window. Based on what you're seeing when you set the
>> view's backgroundColor, it looks like the alpha component is being ignored.
>> I would guess that either the IKImageView only supports an opaque background
>> or you need to play with it some more to get transparency to work. One way
>> to find out would be to subclass IKImageView and override NSView's isOpaque
>> method, returning NO.
>>
>> Also, depending on what you're trying to do, you could always use
>> NSImageView since that does respect transparency, at least when I've tried
>> it with the non-bordered version.
>>
>>
>> On Feb 9, 2009, at 3:10 PM, Christian Graus wrote:
>>
>> I'm sorry, I'm not sure that I'm following this.
>> Looking at it more closely, on the side I want this behaviour, it's just
>> an IKImageView derived class on top of a window.  So, I just need to make
>> the IKImageView show the image, transparently.  I've tried setting the
>> Opaque setting, but it doesn't appear to have one.  I've also tried setting
>> the background color to what you've shown here ( it gives me a white
>> background ) or clearColor ( which gives me a black background ).  Is there
>> something I am missing ?
>>
>> Thanks for your help
>>
>> Christian
>>
>> On Tue, Feb 10, 2009 at 9:18 AM, Steve Christensen <puns...@mac.com>wrote:
>>
>>> Something similar to what you're asking was discussed on this list last
>>> week. To get you started:
>>>
>>> [window setOpaque:NO];
>>> [window setBackgroundColor:[NSColor colorWithCalibratedWhite:1.0
>>> alpha:0.5]];
>>>
>>>
>>>
>>>
>>> On Feb 9, 2009, at 1:55 PM, Christian Graus wrote:
>>>
>>>  I have a window with an image showing on it.  Above this I have a
>>>> window,
>>>> which contains an IKImageView derived class.  The IKImageView has a PNG
>>>> in
>>>> it, which has a transparency layer.  What I need to do, is to make that
>>>> image appear above the image I have in my main window, that is, the
>>>> control
>>>> needs to be transparent, so that one picture appears above another.
>>>>  I've
>>>> found a sample that sets the window alpha, but that fades the whole
>>>> window,
>>>> I just want to make the background transparent.  I'd appreciate any
>>>> suggestions.
>>>>
>>>
>
_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to