我在Xcode(OS X,Swift,Storyboards)中有一个干净的OS X项目。 Info.plist具有以下配置
以下是MyAssembly.sift
public dynamic func viewController() -> AnyObject {
return TyphoonDefinition.withClass(ViewController.self){
(definition: TyphoonDefinition!) in
definition.injectProperty("name", with: "TEST INJECTED")
}
}
这是我的ViewController.swift
:
import Cocoa
@objc
class ViewController: NSViewController {
var name:String?
}
我在视图上添加了NSTextField,并将其值绑定到ViewController的name
属性。
根据文档它应该有效,但它没有。
当我在AppDelegate.applicationDidFinishLaunching方法中尝试print(NSStoryboard(name: "Main", bundle: NSBundle.mainBundle()))
时,它打印为<NSStoryboard: 0x600000001280>
,因此,它不是TyphoonStoryboard
实例。
如果我将typhoonKey
添加到ViewController上的用户定义的运行时属性,就像这样
错误消息&#34;无法设置(typhoonKey)用户定义的检查属性(Typhon_Test_Delete.ViewController):[setValue:forUndefinedKey:]:此类不是密钥typhoonKey的密钥值编码兼容。& #34;得到印刷。
任何想法我做错了什么?
可能是Typhoon正在寻找UIMainStoryboardFile
,但在这种情况下我们有NSMainStoryboardFile
?
答案 0 :(得分:1)
你是对的Typhoon目前还没有提供OSX故事板集成,只有iOS。在iOS上,Typhoon:
这项OSX支持已开始工作,但由于需求不足而无法完成。完成此任务不是一项重大任务。
与此同时,您可以:
[factory inject:controller]
。 答案 1 :(得分:0)
台风问题“在OSX上支持NSStoryboard” https://github.com/appsquickly/Typhoon/issues/558