On Nov 12, 2010, at 11:47 AM, Eric Gorr wrote:

> I have changed the contentView of my NSWindow to be a NSView which return YES 
> for isFlipped.
> 
> If I place a NSButton in the contentView of a window, I can do the following:
> 
>       NSRect  r = [view frame];
>        NSPoint        origin;
> 
>       origin = [view convertPoint:NSZeroPoint toView:[[view window] 
> contentView]];
> 
> The r.origin will say something like ( 20, 14 ) and, when I convert the 
> point, I get back what one would expect ( 20, 14 ).
> 
> The problem comes when I try to place a NSImageView in that same content view.
> 
> The r.origin will say something like ( 20, 14 ), but, when I convert the 
> point, I get back ( 20, 78 ). (The NSImageView is 64x64)
> 
> I am confused as to why this would be happening. Anyone have an idea?
> 
> I should be able to easily provide some sample code if that is required in 
> this case.


I have answered my own question. This solves the problem:

        NSPoint originPoint = NSZeroPoint;

        if ( ![view isFlipped] )
        {
                originPoint.y = NSHeight( r );
        }
        
        origin = [view convertPoint:originPoint toView:[[view window] 
contentView]];


It looks like the NSButton picks up the isFlipped property of the contentView, 
but the NSImageView does not. 

So, I need to take this into account before attempting to convert the point.

_______________________________________________

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