Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NSView *windowContentView = [mainWindow contentView];
- NSRect windowContentBounds = [windowContentView bounds];
- scrollView = [[NSScrollView alloc] init];
- [scrollView setBorderType:NSNoBorder];
- [scrollView setHasVerticalScroller:YES];
- [scrollView setBounds: windowContentBounds];
- [windowContentView addSubview:scrollView];
- NSScrollView *scrollView = [[NSScrollView alloc] initWithFrame:[[mainWindow contentView] frame]];
- // configure the scroll view
- [scrollView setBorderType:NSNoBorder];
- [scrollView setHasVerticalScroller:YES];
- // embed your custom view in the scroll view
- [scrollView setDocumentView:outletToCustomViewLoadedFromNib];
- // set the scroll view as the content view of your window
- [mainWindow setContentView:scrollView];
- // Initial scrollview
- let scrollView = NSScrollView()
- scrollView.translatesAutoresizingMaskIntoConstraints = false
- scrollView.borderType = .noBorder
- scrollView.backgroundColor = NSColor.gray
- scrollView.hasVerticalScroller = true
- window.contentView?.addSubview(scrollView)
- window.contentView?.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[scrollView]|", options: [], metrics: nil, views: ["scrollView": scrollView]))
- window.contentView?.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[scrollView]|", options: [], metrics: nil, views: ["scrollView": scrollView]))
- // Initial clip view
- let clipView = NSClipView()
- clipView.translatesAutoresizingMaskIntoConstraints = false
- scrollView.contentView = clipView
- scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .left, relatedBy: .equal, toItem: scrollView, attribute: .left, multiplier: 1.0, constant: 0))
- scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .top, relatedBy: .equal, toItem: scrollView, attribute: .top, multiplier: 1.0, constant: 0))
- scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .right, relatedBy: .equal, toItem: scrollView, attribute: .right, multiplier: 1.0, constant: 0))
- scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .bottom, relatedBy: .equal, toItem: scrollView, attribute: .bottom, multiplier: 1.0, constant: 0))
- // Initial document view
- let documentView = NSView()
- documentView.translatesAutoresizingMaskIntoConstraints = false
- scrollView.documentView = documentView
- clipView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .left, relatedBy: .equal, toItem: documentView, attribute: .left, multiplier: 1.0, constant: 0))
- clipView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .top, relatedBy: .equal, toItem: documentView, attribute: .top, multiplier: 1.0, constant: 0))
- clipView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .right, relatedBy: .equal, toItem: documentView, attribute: .right, multiplier: 1.0, constant: 0))
- // Subview1
- let view1 = NSView()
- view1.translatesAutoresizingMaskIntoConstraints = false
- view1.wantsLayer = true
- view1.layer?.backgroundColor = NSColor.red.cgColor
- documentView.addSubview(view1)
- documentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[view1]|", options: [], metrics: nil, views: ["view1": view1]))
- // Subview2
- let view2 = NSView()
- view2.translatesAutoresizingMaskIntoConstraints = false
- view2.wantsLayer = true
- view2.layer?.backgroundColor = NSColor.green.cgColor
- documentView.addSubview(view2)
- documentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[view2]|", options: [], metrics: nil, views: ["view2": view2]))
- // Subview3
- let view3 = NSView()
- view3.translatesAutoresizingMaskIntoConstraints = false
- view3.wantsLayer = true
- view3.layer?.backgroundColor = NSColor.blue.cgColor
- documentView.addSubview(view3)
- documentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[view3]|", options: [], metrics: nil, views: ["view3": view3]))
- // Vertical autolayout
- documentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[view1(==100)][view2(==200)][view3(==300)]", options: [], metrics: nil, views: ["view1": view1, "view2": view2, "view3": view3]))
- documentView.addConstraint(NSLayoutConstraint(item: documentView, attribute: .bottom, relatedBy: .equal, toItem: view3, attribute: .bottom, multiplier: 1.0, constant: 0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement