我尝试删除故事板文件和相关的Info.plist
进入但这次扩展停止工作;它甚至不能从 XCode 启动。
The operation couldn’t be completed. (LaunchServicesError error 0.)
在常规应用程序(包含应用程序)上很容易,因为我们看到它的入口点和应用程序委托,但如何在扩展上执行此操作?
我执行了以下步骤:
- 从项目中删除故事板文件
- 修改info.plist:
转到 NSExtension Dictionary,删除此键:NSExtensionMainStoryboard。将其替换为此键 NSExtensionPrincipalClass 并添加您的 ViewController 作为值,例如TodayViewController。
before:
<key>NSExtension</key>
<dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
</dict>
after:
<key>NSExtension</key>
<dict>
<key>NSExtensionPrincipalClass</key>
<string>TodayViewController</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
</dict>
- 如果您使用 Swift,则必须在目标的构建设置中启用“嵌入内容包含 Swift 代码”。将其设置为“是”。
- 另外我必须添加
@objc (TodayViewController)
在我的 TodayViewController 类中(导入之后)。
该应用程序现在应该运行。但我还有两件事必须做:
所以添加这些行:
override func loadView()
{
view = UIView(frame:CGRect(x:0.0, y:0, width:320.0, height:200.0))
}
- 并在 viewDidLoad 方法中设置小部件的高度:
self.preferredContentSize = CGSizeMake(0, 200)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)