我有一个带有2个单独的NSWindow的应用程序。
每个窗口都有一个小桌子,里面有两个项目。
这是我似乎无法解决的问题 - >
如果窗口#1处于活动/聚焦状态,我可以正常点击表格中的各个行。但是,如果我想在窗口#2中单击表中的行,我必须单击该表两次。第一次单击以使窗口#2处于活动/聚焦状态,最后第二次单击以实际选择该行。
如何在一次点击中选择NSTableViews中的行(无论他们的窗口是否对焦)?
答案 0 :(得分:4)
我对NSTableView进行了细分。
-(BOOL)acceptsFirstMouse:(NSEvent *)theEvent {
return YES;
}
答案 1 :(得分:3)
创建NSTableView的IBOutlet:
IBOutlet NSTableView* yourTable;
将它绑在你的桌子上。
然后使用:
[window2 makeFirstResponder: yourTable];
答案 2 :(得分:1)
问题是当你的第一个窗口处于活动状态时它是第一个响应者,所以显然你的tableview将成为window1的下一个响应者,直到你选择它为止。但对于第二个窗口,您的第一个响应者将是window2。因此,您必须双击该表两次,因为第一响应者设置为window2,并且它设置为表2以生成下一个响应者。如果你想单击并选择window2的表,那么你也可以通过绑定或以编程方式完成。