我试图按照 B.A. Learning Swift 书(创建笔记应用程序)中的说明进行操作。 Paris & Co,但面临以下绑定(bind)问题。我主要练习 iOS 编程,所以绑定(bind)概念对我来说是新的。
我执行的步骤(尝试了 xcode 9 beta 5 和 8.3.3):
- 创建 OSX Cocoa 应用程序(不使用 Storyboard,基于文档的应用程序,文档 扩展名“测试”,不要使用核心数据)
- 将“var text = NSAttributedString()”添加到 Document.swift
- 将 NSTextView 添加到 Document.xib
- 在 NSTextView 的绑定(bind)检查器中,将“属性字符串”设置为文件所有者“self.text”(模型键路径)
我看到带有“Xcode 无法解析输入的 key 路径”概念的感叹号
构建成功,但是当我运行时它说“2017-09-03 22:17:40.739643+0200 test3[6017:424072] [
我试图控制从 Xib 到 Swift 的拖动,它警告说“Xcode 无法在当前工作区中找到类 Document”。
我尝试转换为工作区而不是 proj,检查了文件所有者,检查了与错误相关的 stackoverflow 线程——但他们主要关心一些错误建立的连接或非实际连接(我可以删除连接,我知道什么连接是错误的,问题是如何使它正确)。到目前为止找不到解决方案。
提前致谢
最佳答案
您需要使用 @objc
属性声明 text
属性,以便通过像键值编码这样的动态调度访问它。
此外,因为您希望通过键值观察(对于绑定(bind))可以观察到对属性的修改,所以您需要告诉 Swift 始终动态调度它的修改。因此,您还需要在声明中使用 dynamic
修饰符:
@objc dynamic var text = NSAttributedString()
关于swift - 在 OSX : class is not key value coding-compliant for the key {name of binding var} 中绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46027620/