【问题标题】:Resize NSPopover window调整 NSPopover 窗口的大小
【发布时间】:2021-09-17 04:07:24
【问题描述】:

我是 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
        }        
    }

【问题讨论】:

    标签: swift swiftui menubar nspopover


    【解决方案1】:

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

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

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

    2. 将您的var popover = NSPopover.init() 放在AppDelegate 类之上,以便可以全局操作该对象,并且在您想调整大小的任何地方,都可以引用该实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 2018-06-23
      • 2015-10-26
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多