user1001506
user1001506

Reputation:

NSViewController disable resize when presented as Sheet?

So I am presenting an NSViewController as a sheet of a window that has resize disabled.

The view controller that is presented as a sheet can still be resized.

How do I disable resizing of a NSViewController?

Upvotes: 10

Views: 8255

Answers (3)

Thippi
Thippi

Reputation: 109

If you add these methods, the issue will be fixed.

- (void)updateViewConstraints NS_AVAILABLE_MAC(10_10) {

    [super updateViewConstraints];

}

- (void)viewWillLayout NS_AVAILABLE_MAC(10_10) {

    self.preferredContentSize = NSMakeSize(self.view.frame.size.width, self.view.frame.size.height);

}

Upvotes: 1

balazs630
balazs630

Reputation: 3701

Swift 4:

override func viewDidAppear() {
   // any additional code
   view.window!.styleMask.remove(.resizable)
}

By the way you can do this without writing code, here is how:

  • Drag a Window Controller element to the Storyboard from the Object Library.
  • Connect the Window Controller to the specific View Controller which you want to disable resize.
  • On the Window Controller's Attributes uncheck Resize option.

disable resize window xcode

Upvotes: 29

user1001506
user1001506

Reputation:

After some more trying I found out this did the trick in viewDidLoad:

self.preferredContentSize = NSMakeSize(self.view.frame.size.width, self.view.frame.size.height); 

Upvotes: 11

Related Questions