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