我试图删除 Storyboard 文件和相关的Info.plist
条目,但是这次扩展名停止了工作;它甚至没有从XCode启动。The operation couldn’t be completed. (LaunchServicesError error 0.)
在常规应用程序(包含应用程序)上,这很容易,因为我们看到它是入口点和应用程序委托(delegate),但是如何在扩展上做到这一点呢?
最佳答案
我做了以下步骤:
转到NSExtension词典,删除以下项:NSExtensionMainStoryboard。用此键NSExtensionPrincipalClass替换它,然后将ViewController添加为值,例如TodayViewController。
前:
<key>NSExtension</key>
<dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
</dict>
后:
<key>NSExtension</key>
<dict>
<key>NSExtensionPrincipalClass</key>
<string>TodayViewController</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
</dict>
@objc (TodayViewController)
(在导入之后)。 该应用程序应立即运行。但是我还必须做两件事:
因此,添加以下行:
override func loadView()
{
view = UIView(frame:CGRect(x:0.0, y:0, width:320.0, height:200.0))
}
self.preferredContentSize = CGSizeMake(0, 200)
关于ios - 如何在iOS8上以无 Storyboard的方式以编程方式创建Today小部件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26037321/