Cocoa 如何区分同一窗口中的两个NSTableView
我在区分两个NStableView时遇到问题,需要一些帮助 我尝试过以下方法: 一, 和2: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
- (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];
}
}
}