gpt4 book ai didi

xcode - macOS NSExtensionMainStoryboard 无法加载

转载 作者:行者123 更新时间:2023-12-03 16:45:22 27 4
gpt4 key购买 nike

与尝试使用 .xib 创建 iOS 扩展的许多问题不同,我尝试做与使用 StoryBoard 创建 macOS 扩展完全相反的事情。当 Xcode 为我的 macOS 项目创建应用程序扩展目标时,它只有一个 .xib 和 .xib 中 ViewController 的 NSExtensionPrincipalClass

所以我创建了一个“新建”->"file"->“ Storyboard”,并添加了 NSExtensionMainStoryboard到 plist 和没有扩展名的 StoryBoard 名称,我收到模糊的 Widget Simulator 错误:

"TodayExt[76374:5145083] Failed to load extension view controller"

我已经确认:StoryBoard 名称、StoryBoard 自定义类、StoryBoard 的目标成员身份、NSExtensionMainStoryboard 直接位于 NSExtension 下方。

来 self 的列表:

<dict>
<key>NSExtensionMainStoryboard</key>
<string>TodayStoryboard</string>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionPointVersion</key>
<string>2.0</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
<key>com.apple.notificationcenter.widget.description</key>
<string>TodayExt</string>
</dict>

最佳答案

这不是答案,而是一种解决方法。 The answer on Apple Dev forums说“你总是可以定义一个自定义 Storyboard并使用一些粘合代码将其嵌入到你的 Root View Controller 中。”

对于那些想知道“一点粘合代码”是什么的人,在 *ExtensionController 中,您可以添加如下内容:

override func viewDidLoad() {
super.viewDidLoad()

let myStoryboard = NSStoryboard.init(name: NSStoryboard.Name("MyStoryboard"), bundle: Bundle.main)
let myStoryboardVC = myStoryboard.instantiateInitialController() as! MyStoryboardViewController
self.view.autoresizesSubviews = true
self.view.addSubview(myStoryboardVC.view)
self.insertChildViewController(myStoryboardVC, at: 0)

我仍然很想知道不用胶水做到这一点的正确方法。

关于xcode - macOS NSExtensionMainStoryboard 无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51740076/

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