【问题标题】:NSButton in NSTableCellView: How to find desired objectValue?NSTableCellView 中的 NSButton:如何找到所需的 objectValue?
【发布时间】:2012-03-09 06:33:10
【问题描述】:

我有一个通过绑定填充的基于视图的 NSTableView。我的 textFields 和 imageViews 绑定到 NSTableCellView 的 objectValue 的属性。

如果我想在我的 NSTableCellView 中有一个编辑/信息按钮:

  1. 谁应该是按钮操作的目标?

  2. 目标如何获得与按钮所在单元格关联的 objectValue?

我最终想显示一个基于 objectValue 的弹出框/工作表。

【问题讨论】:

    标签: cocoa nstableview cocoa-bindings nsbutton nstableviewcell


    【解决方案1】:

    您的控制器类可以是目标。获取对象值:

    - (IBAction)showPopover:(id)sender {
        NSButton *button = (NSButton *)sender;
        id representedObject = [(NSTableCellView *)[button superview] objectValue];
    }
    

    或者,使用NSTableCellView的子类,使单元格视图成为按钮动作的目标,并调用[self objectValue]获取对象。

    【讨论】:

      【解决方案2】:

      我找到了一个额外的答案:上面的答案似乎假设您在表格视图上使用绑定。由于我是个菜鸟,我找到了一种方法来获取表格视图单元格中的按钮。

      - (IBAction)getCellButton:(id)sender {
           int row = [xmlTable rowForView:sender];
      }
      

      这样,当您单击行内的按钮时,您不必选择该行。它将返回行的 int 值以匹配数组中的数据源而无需绑定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        相关资源
        最近更新 更多