On Jul 8, 2012, at 18:26 , Charles Srstka wrote:

> What’s your exact problem? If it’s one of the same things I was banging my 
> head against earlier, I might be able to help.

In this case, I'm working with a two-pane horizontal split view (resizes in the 
vertical direction). I already know there's a bug in which IB does not enforce 
the same constraint as the run-time (this was confirmed a few weeks ago by an 
Apple person on the list).

But now I have it looking like I want it to in IB, but at run time it changes 
the layout when first creating the window.

The top pane (heh, I mis-typed this as "pain") has an NSTextView (which is 
inside an NSScrollView).

The bottom pane has an NSTextField inset a few pixels, and a button on the 
right. The bottom pane is much smaller than the top pane, just big enough to 
hold a one-line NSTextField. In that configuration, the button is vertically 
centered in the pane, and horizontally centered between the NSTextField and the 
right edge.

When the split view is resized, I want the NSTextField (NSScrollView) in the 
top pane to just grow and shrink, filling the entire pane. I want the 
NSTextField in the bottom to grow and shrink, maintaining the same few-pixel 
inset around the top, left, and bottom edges. I want the button to stay pinned 
to the bottom.

If the window is resized horizontally, both text views should grow with it 
(that is, they should be pinned left and right). The button should be pinned 
right and bottom. If the window is resized vertically, the entire bottom pane 
should remain at whatever size it's at, and the top pane should grow or shrink.

Both panes should have a minimum height, and a minimum width (the window can 
have the minimum width).

Layout in IB:

        http://www.flickr.com/photos/jetforme/7532142304/

At runtime:

        http://www.flickr.com/photos/jetforme/7532142250/

Currently, although it looks correct in IB, at run time the split view position 
changes so that both panes appear to be equal height. The runtime constraints 
currently behave correctly, except that vertical resizing of the window resizes 
both panes proportionally.

I do get several complaints about constraints on launch:

2012-07-08 18:19:45.577 Console[49250:403] Unable to simultaneously satisfy 
constraints:
(
    "<NSAutoresizingMaskLayoutConstraint:0x7fde9b83a160 h=--& v=--& 
H:[NSView:0x1029952d0(0)]>",
    "<NSLayoutConstraint:0x1029960a0 H:[NSTextField:0x7fde9b81fc10]-(79)-|   
(Names: '|':NSView:0x1029952d0 )>",
    "<NSLayoutConstraint:0x102995e80 H:|-(5)-[NSTextField:0x7fde9b81fc10]   
(Names: '|':NSView:0x1029952d0 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x1029960a0 H:[NSTextField:0x7fde9b81fc10]-(79)-|   (Names: 
'|':NSView:0x1029952d0 )>

Set the NSUserDefault 
NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have 
-[NSWindow visualizeConstraints:] automatically called when this happens.  
And/or, break on objc_exception_throw to catch this in the debugger.
2012-07-08 18:19:45.579 Console[49250:403] Unable to simultaneously satisfy 
constraints:
(
    "<NSAutoresizingMaskLayoutConstraint:0x7fde9b83a080 h=--& v=--& 
V:[NSView:0x1029952d0(0)]>",
    "<NSLayoutConstraint:0x102996310 V:[NSTextField:0x7fde9b81fc10]-(3)-|   
(Names: '|':NSView:0x1029952d0 )>",
    "<NSLayoutConstraint:0x102996210 V:|-(3)-[NSTextField:0x7fde9b81fc10]   
(Names: '|':NSView:0x1029952d0 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x102996310 V:[NSTextField:0x7fde9b81fc10]-(3)-|   (Names: 
'|':NSView:0x1029952d0 )>

Set the NSUserDefault 
NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have 
-[NSWindow visualizeConstraints:] automatically called when this happens.  
And/or, break on objc_exception_throw to catch this in the debugger.


_______________________________________________

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]

Reply via email to