gpt4 book ai didi

协议(protocol)中的 Swift 函数未调用

转载 作者:行者123 更新时间:2023-11-30 10:31:17 25 4
gpt4 key购买 nike

函数windowDidChangeOcclusionState永远不会被调用。

class MainWindow: NSWindowController, CloseWindowWhenNotFocused {

static let shared = MainWindow()
convenience init() {
let hostingController = NSHostingController(rootView: DownloadMainView.shared)

let window = NSWindow(contentViewController: hostingController)
window.setContentSize(NSSize(width: 800, height: 400))
window.title = "MainWindow"
self.init(window: window)

self.window?.delegate = self
self.window?.center()

}

}

protocol CloseWindowWhenNotFocused: NSWindowDelegate{ }

extension CloseWindowWhenNotFocused where Self : NSWindowController{

func windowDidChangeOcclusionState(_ notification: Notification) {
print(#function)
}

}

最佳答案

扩展不能覆盖方法。你想做的事是不可能的。特别是,您无法可靠地将可选委托(delegate)回调添加到符合协议(protocol)的每种类型。可以使类型符合定义它们的模块之外的模块中的协议(protocol)。没有可靠的方法可以做到这一点。

关于协议(protocol)中的 Swift 函数未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com