【问题标题】:NSTableView sort not getting correct IDNSTableView 排序没有得到正确的 ID
【发布时间】:2010-10-15 13:49:39
【问题描述】:

我在 Cocoa 应用程序中使用表视图。我已经设置了双击动作发生时执行以下方法:

- (void)doubleClickInTable:(id)sender {
      int rowIndex = [sender selectedRow];
      if (rowIndex != -1) {
        [userEditController setData:[[self users] objectAtIndex:rowIndex]];
        [self showUserEditPanel];
    }
}

如您所见,EditController 接收正在编辑的对象。此对象是位于源数组的 rowIndex 处的对象。这在大多数情况下都非常有效,但是一旦我开始测试排序,它就会设置错误的对象。这是因为表格中被点击行的索引与源数组不同,因为排序会移动行。

我该如何解决这个问题?

【问题讨论】:

    标签: objective-c cocoa double-click


    【解决方案1】:

    您可以使用相同的排序描述符创建一个排序数组,并在其中检索位于rowIndex 的对象。另一种方法是,如果您使用的是数组控制器,则可以在控制器的 arrangedObjects 数组中检索该索引处的对象,该数组已经排序(因此得名)。

    【讨论】:

    • 我推荐使用彼得提到的 NSArrayController。
    猜你喜欢
    • 1970-01-01
    • 2022-08-14
    • 2023-03-16
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    相关资源
    最近更新 更多