gpt4 book ai didi

ios - 在 Mac Catalyst 中访问 NSWindow

转载 作者:行者123 更新时间:2023-12-01 16:13:19 26 4
gpt4 key购买 nike

我知道 NSWindow 在 Mac Catalyst 中没有正式可用,但我已经看到一些帖子和成功案例通过 NSClassFromString 访问它。和 valueForKeyPath .但是,我从来没有能够让它工作,因为它总是返回零。

guard let nsWindows = NSClassFromString("NSApplication")?.value(forKeyPath: "sharedApplication.windows") as? [AnyObject] else {
return nil
}

也曾在 objective-c 中尝试过
NSArray *const nsWindows = [NSClassFromString(@"NSApplication") valueForKeyPath:@"sharedApplication.windows"];

但每次都是相同的结果 - 零 - 。

有什么技巧可以让它发挥作用,或者这种方式是否已被关闭作为访问它的潜在方式?它可以成功获取到 NSApplication 实例。但是 windows 属性始终为零。

最佳答案

这可以在 Dynamic 的帮助下轻松完成:

extension UIWindow {
var nsWindow: NSObject? {
var nsWindow = Dynamic.NSApplication.sharedApplication.delegate.hostWindowForUIWindow(self)
if #available(macOS 11, *) {
nsWindow = nsWindow.attachedWindow
}
return nsWindow.asObject
}
}

关于ios - 在 Mac Catalyst 中访问 NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58916487/

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