Your screen flipping code is a good start, but it's not going to work with multiple monitors. That's why knowing where it comes from would be helpful - for instance, if it's the current mouse point, there are definitely better ways to do this.
Another thing you've missed: converting to myContentView's coordinate space from the window's space, with [myContentView convertPoint:myWindowPoint fromView:nil] - "If aView is nil, this method instead converts from window base coordinates" And if it doesn't find a subview, it will return myContentView so you'll need a check for that. "if (myCocoaControlView == myContentView)" will work fine. ________________________________________ From: [email protected] [[email protected]] on behalf of Dave [[email protected]] Sent: Tuesday, April 21, 2015 9:46 AM To: Cocoa Developers Subject: Re: Converting to Window Coordinates Hi Lee Ann, I was pretty sure the theGlobalPoint is Top, Left relative, but wasn't sure how to convert it, I tried a few things and this seems to work: myContentView = myPhantomWindow.contentView; myGlobalPoint.x = theGlobalPoint.x; myGlobalPoint.y = NSMaxY([[[NSScreen screens] objectAtIndex:0] frame]) - theGlobalPoint.y; //Flip myWorkRect.origin = myGlobalPoint; myWorkRect.size = NSMakeSize(1,1); myWorkRect = [self.window convertRectFromScreen:myWorkRect]; myWindowPoint = myWorkRect.origin; myCocoaControlView = [myContentView hitTest:myWindowPoint]; if (myCocoaControlView != nil) { LogIfDave(@"FoundView: %@ ",NSStringFromClass([myCocoaControlView class])); } I don’t want it too report having found the Point in the Content View, what’s the best way to handle this? I could compare the view returned to window.contentView or I could Thanks a lot Dave > On 21 Apr 2015, at 17:06, Lee Ann Rucker <[email protected]> wrote: > > How are you getting your global point? There are non-Cocoa parts of the OS > that do use top-left instead of bottom-left origins, so those will need > converting. > ________________________________________ > From: [email protected] > [[email protected]] on behalf of Dave > [[email protected]] > Sent: Tuesday, April 21, 2015 8:53 AM > To: Cocoa Developers > Subject: Converting to Window Coordinates > > I meant add this: > > Global: {183.45703125, 92.41015625} > Window: {183.45703125, -619.58984375} > > These are the values I get when I run the code. From looking at Y it looks > like I need to flip the Y Coordinate, but I’m not sure where/how to do this? > > TheY = 92 on the Global Point represents a point near the top of the Screen. > > Cheers > Dave > > > Hi All, > > I have the following code in a Window Controller. > > myWorkRect.origin = theGlobalPoint; > myWorkRect.size = NSMakeSize(1,1); > myWorkRect = [self.window convertRectFromScreen:myWorkRect]; > myWindowPoint = myWorkRect.origin; > > myCocoaControlView = [myContentView hitTest: myWindowPoint]; > > I have a Point in Global (Screen) space and I want to check if that point is > inside a view of the associated window. I had hoped the code above would do > the trick but it seems not. > > The Global point is within a View in the Window, and when this code gets > called hitTest always returned the Frame View (not the deepest View that > intersects the point) as the documentation says, just to see what would > happen, I overrode hitTest in the Content View and now it returns nil. > > What am I do doing wrong? > > Thanks a lot for any help, > All the Best > Dave > > > > _______________________________________________ > > Cocoa-dev mailing list ([email protected]) > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/lrucker%40vmware.com > > This email sent to [email protected] _______________________________________________ Cocoa-dev mailing list ([email protected]) 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: https://lists.apple.com/mailman/options/cocoa-dev/lrucker%40vmware.com This email sent to [email protected] _______________________________________________ Cocoa-dev mailing list ([email protected]) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
