调整 NSPopover 窗口的大小

时间:2021-07-06 14:01:55

标签: swift swiftui menubar nspopover

我是 swift 的新手,我正在制作一个菜单栏应用程序。如何让用户通过拖动窗口的角来调整窗口大小?到目前为止我只知道如何设置固定的高度和宽度popover.contentSize = NSSize(width: 890, height:890)

应用委托

@NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate {
        var popover = NSPopover.init()
        var statusBar: StatusBarController?
    
        func applicationDidFinishLaunching(_ aNotification: Notification) {
            // Create the SwiftUI view that provides the contents
            let contentView = ContentView()
    
            
            popover.contentViewController = MainViewController()
            popover.contentSize = NSSize(width: 890, height:890)
            popover.contentViewController?.view = NSHostingView(rootView: contentView)
            popover.animates = false
           
            
            
            // Create the Status Bar Item with the Popover
            statusBar = StatusBarController.init(popover)
        }
    
        func applicationWillTerminate(_ aNotification: Notification) {
            // Insert code here to tear down your application
        }        
    }

1 个答案:

答案 0 :(得分:0)

我也尝试完成你一直在尝试的事情,而且已经有一段时间了。据我所知,苹果不允许通过手势调整弹出框的大小。

但是您可以调整弹出框的大小,但它是即时的。您可以做 2 件事来实现这一目标。

  1. 有一个单例类来控制 NSPopover 的状态、大小(可能命名为:PopoverController)并调整 NSPopover 的单个实例

  2. 将您的 var popover = NSPopover.init() 放在 AppDelegate 类之上,以便该对象可在全局范围内操作,并且无论您想在何处调整大小,都可以参考该实例。

相关问题