如何区分同一窗口中的两个nstableviews

时间:2014-04-25 22:23:27

标签: cocoa osx-mavericks nstableview nsnotifications

我在区分两个NSTableView时遇到问题,可以使用一些帮助。

我尝试过这些方法:

1

- (void)tableViewSelectionDidChange:(NSNotification *)notification {

    if ([[notification object] tag] == 0) {
 NSInteger row = [self.categoryTableView selectedRow];
       ...do stuff

    } else {
        if ([[notification object] tag] == 1 ) {
            [self showItemSheet:self];
        }
    }
}

和2:

- (void)tableViewSelectionDidChange:(NSNotification *)notification {

    if ([notification object] == categoryTableView) {
        NSInteger row = [self.categoryTableView selectedRow];

        ..do stuff

    } else {

        if ([notification object] == itemTable ) {
            [self showItemSheet:self];
        }
    }
}

这两种方法都有效 - 大部分时间都是如此。但是,如果我继续从带有标记0的tableview中进行选择,则每三到四次点击,我会看到itemSheet表已启动。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用委托方法而不是通知来实现您想要的效果吗?从上面的代码看起来一切都很好,所以可能错误在其他地方?