- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Swift 新手,正在尝试学习如何使用 NSOutlineView 实现 NSTreeController。我一直在遵循几个显示此类示例的指南,但我不断收到错误。我一步一步地遵循和/或尝试运行他们的源代码(如果有),但我遇到了同样的错误。我认为 Swift 4 中存在一些变化,导致这些 Swift 3 示例产生错误。由于 Swift 4 中没有太多示例,我决定尝试在这里提出问题。
我收到的错误是:
this class is not key value coding-compliant for the key isLeaf.
我相信错误来自为 NSTreeController 设置的关键路径:
但是我不确定需要做什么来修复该错误。
我有一个名为 Year 的简单模型类。
class Year: NSObject {
var name: String
init(name: String) {
self.name = name
}
func isLeaf() -> Bool {
return true
}
}
我的 View Controller 看起来像这样。
class ViewController: NSViewController, NSOutlineViewDataSource, NSOutlineViewDelegate {
@IBOutlet weak var outlineView: NSOutlineView!
@IBOutlet var treeController: NSTreeController!
override func viewDidLoad() {
super.viewDidLoad()
addData()
outlineView.delegate = self
outlineView.dataSource = self
}
func addData() {
let root = ["name": "Year", "isLeaf": false] as [String : Any]
let dict: NSMutableDictionary = NSMutableDictionary(dictionary: root)
dict.setObject([Year(name: "1999"), Year(name: "2000")], forKey: "children" as NSCopying)
treeController.addObject(dict)
}
func isHeader(item: Any) -> Bool {
if let item = item as? NSTreeNode {
return !(item.representedObject is Year)
} else {
return !(item is Year)
}
}
func outlineView(_ outlineView: NSOutlineView, viewFor tableColumn: NSTableColumn?, item: Any) -> NSView? {
if isHeader(item: item) {
return outlineView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "HeaderCell"), owner: self)!
} else {
return outlineView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "DataCell"), owner: self)!
}
}
}
当我运行该程序时,它不会导致任何问题,但是当我展开节点以显示根的两个子节点时,它会给出我上面提到的错误。
最佳答案
因为NSOutlineView
在KVO中使用了isLeaf
,所以必须在isLeaf
前面添加@objc
> 功能:
@objc func isLeaf() -> Bool {
return true
}
关于cocoa - NSTreeController 错误 - 此类与键的键值编码不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47214258/
我有一个 NSTreeController 来管理一个实体(核心数据模型)和一个 NSOutlineView 来显示该树。 我希望树显示一些与底层核心数据模型中的实体不对应的特殊节点。我该怎么做呢?我
当 NSTreeController -(void)addChild:(id)sender 被调用时,有没有办法获取创建的 NSManagedEntity ? 文档提到此方法的结果被推迟到下一个循环运
背景 我在我的 Cocoa 应用程序中构建了一个源列表(类似于 iTunes 等)。 我有一个带有 Value 的 NSOutlineView绑定(bind)到arrangedObjects.name
我有一个(我认为)非常简单的情况,其中 NSTreeController 绑定(bind)到根对象数组,每个根对象可能有一些子对象。我正在使用 NSBrowser 来展示它们。 它们显示良好并且层次结
我有一个 NSTreeController,它绑定(bind)到一个类。 NSOutlineView dirTree 绑定(bind)到 NSTreeController 特别是大纲 View 内容绑
我在程序中将 NSTreecontroller 与 NSOutlineView 结合使用,并且我的程序不断抛出:malloc: *** error for object 0x1d70d0: doubl
我正在开发桌面可可应用程序。在应用程序中,我有一个基于视图的NSOutlineView绑定到NSTreeController: NSTreeController处于实体模式,由Core Data驱
在 Marcus Zarra 的《核心数据》一书中的第 40 页中,他建议,由于 NSTreeController 需要相同的 key 来访问层次结构中的所有对象(例如子对象),并且这可能意味着意义不
我有一个 NSTreeController (向 NSOutlineView 提供内容)。我希望顶级对象属于一个类,而所有其他对象(因此,任何级别的子对象)属于另一个类。解决这个问题的最佳方法是什么?
正如你们中许多人可能知道的那样,绑定(bind)到大纲 View 的 NSTreeController 可以在呈现核心数据实体时显示重复项。 临时解决方案是在谓词中添加“parent == nil”,
我是 Swift 新手,正在尝试学习如何使用 NSOutlineView 实现 NSTreeController。我一直在遵循几个显示此类示例的指南,但我不断收到错误。我一步一步地遵循和/或尝试运行他
我有一个非常基本的应用程序:一个带有绑定(bind)到 NSTreeController 的 NSOutlineView 的窗口。大纲 View 显示一个简单的模型对象 (TCCard)。我添加了两个
在我的项目中,NSTreeController 绑定(bind)到 NSOutlineView( cocoa 绑定(bind))。由于某种原因我无法使用NSPredicate从Core Data中过滤
背景 带有 GC 的 Snow Leopard 10.6.4 上的核心数据应用 我有一个由 NSTreeController 使用绑定(bind)支持的 NSOutlineView 我正在后台 NSO
我正在尝试将 NSTreeController 的“arrangedObjects”绑定(bind)到自定义 View 的“managedContent”(例如,以便它可以显示自定义轮廓)。在 set
好的各位,这是我的问题。 我将使用 CoreData + Source List + NSTreeController 创建类似于 Finder(或 iTunes,如果您愿意)的源列表的内容。 我的问
有人知道一个好的解决方法或黑客从 NSTreeController add: 或 addChild: 方法获取指向新创建的节点的指针吗? 最佳答案 一种方法是让它选择插入的对象,然后调用 select
如何使用搜索框来过滤 NSOutlineView/NSTreeController?我知道这与绑定(bind)和谓词有关。但没有具体说怎么做。有人可以指导我完成过滤 NSOutlineView/NST
我有一个简单的 NSOutlineView 绑定(bind)到 NSTreeController,它提供对我的分层数据模型的访问。我想将其设为主/详细 View ,并在某些绑定(bind) View
给定 NSTreeController 表示的模型对象,如何在树中找到它们的索引路径并随后选择它们?这似乎是一个非常明显的问题,但我似乎找不到任何引用。有什么想法吗? 最佳答案 没有“简单”的方法,您
我是一名优秀的程序员,十分优秀!