Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何区分同一窗口中的两个NSTableView_Cocoa_Osx Mavericks_Nstableview_Nsnotifications - Fatal编程技术网

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

Cocoa 如何区分同一窗口中的两个NSTableView,cocoa,osx-mavericks,nstableview,nsnotifications,Cocoa,Osx Mavericks,Nstableview,Nsnotifications,我在区分两个NStableView时遇到问题,需要一些帮助 我尝试过以下方法: 一, 和2: - (void)tableViewSelectionDidChange:(NSNotification *)notification { if ([notification object] == categoryTableView) { NSInteger row = [self.categoryTableView selectedRow]; ..do stu

我在区分两个NStableView时遇到问题,需要一些帮助

我尝试过以下方法:

一,

和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表已启动。

您是否可以尝试使用委托方法而不是通知来实现所需的功能?从上面的代码看,一切正常,因此可能错误在别处?

这是什么意思?到底是什么问题?我会尽量弄清楚-我在类别表中选择了一个项目,项目表就会打开。我只希望在选中itemTable对象时打开itemSheet。您是否可以尝试使用委托方法而不是通知来实现所需的功能?从上面的代码来看,一切看起来都很好,所以可能错误在其他地方?这正是我最终要做的。如果你把这个改成一个答案,我会把它改成正确的。太好了,很高兴它奏效了。也许你可以在回答中添加一条评论,说明你尝试了什么。
- (void)tableViewSelectionDidChange:(NSNotification *)notification {

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

        ..do stuff

    } else {

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