Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos windowDidResize协议swift OSX_Macos_Swift_Window_Protocols - Fatal编程技术网

Macos windowDidResize协议swift OSX

Macos windowDidResize协议swift OSX,macos,swift,window,protocols,Macos,Swift,Window,Protocols,我正在创建一个程序,我希望UI根据窗口的大小进行更改。我正在寻找一些在调整窗口大小时调用的方法。我查看了windowDidResize的文档,但在调整窗口大小时无法使其正常工作 import SpriteKit import AppKit class GameScene: SKScene , SKPhysicsContactDelegate ,NSWindowDelegate{ **** bunch of code **** func windowDidResize (noti

我正在创建一个程序,我希望UI根据窗口的大小进行更改。我正在寻找一些在调整窗口大小时调用的方法。我查看了windowDidResize的文档,但在调整窗口大小时无法使其正常工作

import SpriteKit
import AppKit
class GameScene: SKScene , SKPhysicsContactDelegate ,NSWindowDelegate{

****   bunch of code   ****


  func windowDidResize (notification: NSNotification) {
    HUDComp.updatePosition(size)
    println("Screen has been resized")
  }
}

非常感谢您提供任何信息。

如果您继承了NSWindowDelegate,您只需将observer添加到NSNotificationCenter即可。 代码在这里

NSNotificationCenter.defaultCenter().addObserver(self,selector:selector(“windowDidResize:”),name:NSWindowDidResizeNotification,object:nil)

我的两分钱兑换swift 5。(同时显示委托和通知,选择一个…)

Swift 5 macOS 11+ 为Xcode 12.2和macOS Big-Sur更新

当窗口的尺寸发生更改时,这将调用
windowDidResize

class ViewController: NSViewController, NSWindowDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        NotificationCenter.default.addObserver(self, selector: #selector(NSWindowDelegate.windowDidResize(_:)), name: NSWindow.didResizeNotification, object: nil)
    }

    func windowDidResize(_ notification: Notification) {
        print(view.window?.frame.size as Any)
    }
}
class ViewController: NSViewController, NSWindowDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        NotificationCenter.default.addObserver(self, selector: #selector(NSWindowDelegate.windowDidResize(_:)), name: NSWindow.didResizeNotification, object: nil)
    }

    func windowDidResize(_ notification: Notification) {
        print(view.window?.frame.size as Any)
    }
}