gpt4 book ai didi

swift - 台风:从 Storyboard OS X 注入(inject) Controller

转载 作者:可可西里 更新时间:2023-11-01 02:18:19 28 4
gpt4 key购买 nike

我在 Xcode(OS X、Swift、Storyboards)中有一个干净的 OS X 项目。 Info.plist 有如下配置

enter image description here

这是 MyAssembly.sift 中 View Controller 的配置

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?
}

我在 View 上添加了 NSTextField 并将其值绑定(bind)到 ViewController 的 name属性(property)。

根据文档,它应该可以工作,但实际上没有。

当我尝试 print(NSStoryboard(name: "Main", bundle: NSBundle.mainBundle()))在 AppDelegate.applicationDidFinishLaunching 方法中它打印为 <NSStoryboard: 0x600000001280> , 所以它不是 TyphoonStoryboard实例。

如果我添加 typhoonKey像这样在 ViewController 上使用用户定义的运行时属性

enter image description here

错误消息“无法在 (Typhon_Test_Delete.ViewController) 上设置 (typhoonKey) 用户定义的检查属性:[setValue:forUndefinedKey:]: 此类对于键 typhoonKey 不符合键值编码。”打印出来。

知道我做错了什么吗?

可能是台风在寻找UIMainStoryboardFile但在这种情况下我们有 NSMainStoryboardFile

最佳答案

你说得对,Typhoon 目前不提供 OSX Storyboard集成,只提供 iOS。在 iOS 上,台风:

  • 在启动时检查应用程序 plist 中的 TyphoonConfig。如果找到,连同 Storyboard 详细信息 (UIMainStoryboardFile),那么它将检测应用程序以确保此 Storyboard 是 TyphoonStoryboard 的实例。

此 OSX 支持的工作已开始,但由于需求很少而未完成。完成这件事并不是什么大事。

与此同时,您可以:

  • 手动创建 TyphoonStoryboard 实例并使用它。
  • 实例化后调用[factory inject:controller]

关于swift - 台风:从 Storyboard OS X 注入(inject) Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34335510/

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