我有一个应用程序,加载了 2 个单独的 NSWindow。
每个窗口都有一个小表,其中包含两个项目。
这是我似乎无法解决的问题-->
如果窗口#1处于活动状态/焦点,我可以正常单击表中的各个行。但是,如果我想单击窗口 #2 中表中的行,则必须单击该表两次。第一次单击以使窗口 #2 处于活动/焦点状态,最后第二次单击以实际选择该行。
如何只需单击一下即可选择NSTableViews中的行(无论它们的窗口是否聚焦)?
我子类化了NSTableView。
-(BOOL)acceptsFirstMouse:(NSEvent *)theEvent {
return YES;
}
将 NSTableView 的 IBOutlet 创建为:
IBOutlet NSTableView* yourTable;
将其绑定到表。
然后使用:
[window2 makeFirstResponder: yourTable];
问题是当您的第一个窗口处于活动状态时,因为它是第一个响应者,因此很明显您的表视图将是 window1 的下一个响应者,直到您选择它。但是对于第二个窗口,您的第一个响应者将是窗口2。因此,您必须双击表格两次,因为第一个响应者设置为窗口 2,并且它设置为表 2 以制作下一个响应者。如果要单击并选择窗口2表,则可以通过绑定或编程方式进行操作。