Question

My application contains a main container view in which three different views(subviewA, subviewB and subviewC) are swapped in and out. Both subviewA and subviewB are to resize with the window and I do this as follows

NSView *myCurrentView = [_myCurrentViewController view];

    if ([[_myCurrentViewController title] isEqualToString:subviewA] ||
        [[_myCurrentViewController title] isEqualToString:subViewB]) {

        [_myScrollView setHidden:YES];
        [myCurrentView setTranslatesAutoresizingMaskIntoConstraints:NO];
        [_mainWindowView addSubview: [_myCurrentViewController view]];

        [_mainWindowView addConstraints:[NSLayoutConstraint
                                         constraintsWithVisualFormat:@"H:|[myCurrentView]|"
                                         options:NSLayoutFormatDirectionLeadingToTrailing
                                         metrics:nil
                                         views:NSDictionaryOfVariableBindings(myCurrentView)]];

        [_mainWindowView addConstraints:[NSLayoutConstraint
                                         constraintsWithVisualFormat:@"V:|[myCurrentView]|"
                                         options:NSLayoutFormatDirectionLeadingToTrailing
                                         metrics:nil
                                         views:NSDictionaryOfVariableBindings(myCurrentView)]];
}

This works fine, however for subviewC i would like to have the horizontal size of the subview, resize with the window, but use scrolling for the vertical. So, in IB I added a NSScrollView as a subview of my mainWindowView. I hide the scroll view if subViewA or subviewB are selected, but I don't know how to properly configure the constraints for subviewC. I figured I could add horizontal constraints simliar to subviewA or subviewB, since I woulk like the view to resize with the window, however I don't know what to add for constraints in the vertical to allow scrolling, so far I have this

[[_myCurrentViewController view] setTranslatesAutoresizingMaskIntoConstraints:YES];
        [_myScrollView setHidden:NO];
        [_myScrollView setDocumentView:[_myCurrentViewController view]];

        [_myScrollView addConstraints:[NSLayoutConstraint
                                         constraintsWithVisualFormat:@"H:|[myCurrentView]|"
                                         options:NSLayoutFormatDirectionLeadingToTrailing
                                         metrics:nil
                                         views:NSDictionaryOfVariableBindings(myCurrentView)]];

Thanks

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top