Re: How to anchor a child-window to its parent top-right (or other point) while parent resizes.
Re: How to anchor a child-window to its parent top-right (or other point) while parent resizes.
- Subject: Re: How to anchor a child-window to its parent top-right (or other point) while parent resizes.
- From: Keary Suska <email@hidden>
- Date: Sun, 22 Jul 2012 10:52:49 -0600
On Jul 22, 2012, at 5:34 AM, Motti Shneor wrote:
> This seems a real newbie question, but the solutions I found seem too complicated for my task.
>
> I have a non-NSPopover pop-over info window (can't use NSPopOver for many reasons).
>
> This "popover like" is just a window that draws itself "anchored" to some point in the parent window's coordinate system. Being a child-window of its parent, it also moves with it, as expected.
>
> When parent window is resized, the popover loses its anchor point, because child-windows don't normally move when their parent resizes (no matter which side of the parent window is changing).
>
> That behavior is a bit weird, because when movement is synchronized, one may guess that some point in the child window always moves with some other point in the parent window, or at least with some origin point (top-left, bottom-right, etc.) of the parent. None of this happens.
>
> I could fix this by moving my child-window in the "windowWillResize" or windowDidResize" delegate of the parent, but it is not easy to know exactly what happened (how did the anchor point on the parent, moved in screen-coordinates) and so move the child-window.
I suspect the issue is that since the "anchor" is the origin point, which is bottom-left, that resizing top/down is the issue since that would be the only time that the window "moves" as a result.
Depending on whether you want the child window to "snap" into place or to live resize, OTOH, I would keep the *top*/right coordinate point of the child window in the parent window's coordinate space, and then in -windowDidResize: or windowWillResize:toSize: (for snap or live consecutively), or both, perform a delta to see if that top/right point has changed, and then change the relative position of the child window. Sounds pretty easy to me...
HTH,
Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"
_______________________________________________
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