【问题标题】:NSButton argument binding in view-based NSTableView基于视图的 NSTableView 中的 NSButton 参数绑定
【发布时间】:2012-01-04 01:54:27
【问题描述】:

具有单列的基于视图的 NSTableView。每个“单元格”包含几个 NSTextField、一个 NSImageView 和一个 NSButton,所有这些都绑定到 Table Cell View 的 objectValue 的各种属性。 NSTableView的内容绑定到一个NSArrayController的arrayObjects,它是Entity模式,绑定到相关的NSManagedObjectContext。

NSTextFields 和 NSImageView 的行为符合预期。然而,出于某种原因,NSButton 没有。它总是被禁用。我已将其参数绑定到 objectValue 的属性,并将其目标绑定到文件的所有者。实验表明导致问题的是参数绑定而不是目标绑定。印象是参数值必须为零,因此导致按钮被禁用。但实际上不可能,因为其他绑定(NSTextFields 等)工作正常。

我在基于单元格的表格视图中多次使用按钮参数/目标绑定没有问题。所以我想也许基于视图的表格视图有一些特征意味着这种绑定不起作用。但是 Apple 的 TableViewPlayground 示例使用这种方法(在 HUD 面板中)没有问题。我的绑定以完全相同的方式设置。我能看到的唯一区别是 Apple 的示例使用类模式数组控制器,而我的是实体模式。但我不敢相信这就是问题所在(或者至少我非常希望这不是一个严重的弱点)。,

【问题讨论】:

    标签: nstableview cocoa-bindings nsbutton


    【解决方案1】:

    我在这个完全相同的问题上花了几个小时。就我而言,NSTableView 的委托也没有设置为文件的所有者。设置完成后,一切都开始正常运行。

    【讨论】:

    • 不幸的是,这对我的情况没有任何影响。
    • 这个答案对我有用,谢谢。致 jfewtr:确保您考虑了选择器(您需要像 -(void)buttonAction:(id)sender; 这样的方法才能使其工作。此外,您可以尝试在 IB 中的选择器之后添加 :
    • 已确认 - 如果 tableView 的委托为 nil,则不会发送按钮操作。
    猜你喜欢
    • 1970-01-01
    • 2014-01-14
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多