4

我有一个加载了 2 个单独的 NSWindow 的应用程序。

每个窗口都有一张小桌子,里面有两件物品。

这是我似乎无法解决的问题-->

如果窗口 #1 处于活动状态/聚焦状态,我可以正常单击表中的各个行。但是,如果我想在窗口#2 中单击表格中的行,我必须单击表格两次。第一次单击使 Window #2 处于活动/聚焦状态,最后第二次单击以实际选择行。

我怎样才能一键选择 NSTableViews 中的行(无论它们的窗口是否处于焦点)?

4

3 回答 3

5

我对 NSTableView 进行了分类。

-(BOOL)acceptsFirstMouse:(NSEvent *)theEvent {
   return YES;
}
于 2015-06-08T22:51:26.773 回答
4

创建 NSTableView 的 IBOutlet 为:

IBOutlet NSTableView* yourTable;

把它绑定到你的桌子上。

然后使用:

[window2 makeFirstResponder: yourTable];
于 2013-10-24T07:12:07.433 回答
1

问题是当您的第一个窗口处于活动状态时,因为它是第一响应者,所以显然您的 tableview 将成为 window1 的下一个响应者,直到您选择它。但是对于第二个窗口,您的第一个响应者将是 window2。因此,您必须双击表格两次,因为第一响应者设置为 window2,并且设置为表 2 以制作下一个响应者。如果您想单击并选择 window2 的表,那么您也可以通过绑定或以编程方式进行。

于 2013-10-24T06:49:33.323 回答