我正在创建一个简单的操作系统应用程序,但我找不到任何地方如何进行调整大小事件。
我们假设我想打印新的宽度和高度,我有这个控制器:
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我要添加什么?谢谢。
我的问题与Listen for window resize event in Swift / Objective-C不一样。由于我的观看次数必须延长NSViewController
而不是NSWindowController
。在他的回答中,他没有解释windowWillResize
必须准确返回的内容
答案 0 :(得分:7)
您需要在某处实现NSWindowDelegate
,并将窗口的委托设置为该对象。如果需要,可以在视图控制器中实现此代码。
class ViewController: NSViewController, NSWindowDelegate {
override func viewWillAppear() {
self.view.window.delegate = self
}
func windowWillResize(sender: NSWindow, toSize frameSize: NSSize) -> NSSize {
// Your code goes here
}
func windowDidResize(notification: NSNotification) {
// Your code goes here
}
}
答案 1 :(得分:4)
Swift 4 - macOS 10.13
class ViewController: NSViewController, NSWindowDelegate {
override func viewDidAppear() {
view.window?.delegate = self
}
func windowDidResize(_ notification: Notification) {
// This will print the window's size each time it is resized.
print(view.window?.frame.size)
}
}