0

I´m building a SwiftUI Mac App. It´s main window shall be resizable as normal in MacOS.
With a Button I want to resize the window programaticly.
That works fine with the code below.
After the programatic resizing the window cannot be resized anymore by the user(via mouse).
How can this be accomplished?

struct MainView1: View {

  @State var width : CGFloat = .infinity
  var body: some View {
    SomeView(width: $width)
      .background(Color.red)
      .frame(width: width)
  }
}


struct SomeView: View {

  @Binding var width : CGFloat

  var body: some View {

    GeometryReader{geometry in
      VStack{
        Text("geometry width:\(geometry.size.width)")
        Text("geometry hight:\(geometry.size.height)")
        Button("Set width = 200"){width = 200}
        Text("width:\(width)")
      }//
      .background(Color.yellow)
      //.frame(width: geometry.size.height, height: geometry.size.height)
    }
  }
}
mica
  • 3,898
  • 4
  • 34
  • 62
  • 1
    There is conflict here your window has `fit-to-content` and you fix content with `frame(width: width)` and want window to be resizable, but they are mutually exclusive. So you need to think what to have of those. Probably you need to set window size via AppKit/NSWindow instead of SwiftUI. Next should be helpful https://stackoverflow.com/a/63439982/12299030. – Asperi Jan 12 '21 at 14:08
  • @Asperi Tnx - solved my problem, setting the size via AppKit/NSWindow – mica Jan 12 '21 at 21:33

0 Answers0