繁体   English   中英

如何使NSView立即获得焦点/第一响应者接受mouseDown事件?

[英]How to make a NSView get focus/first responder immediately to accept a mouseDown event?

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

每个窗口都有一个小桌子,里面有两个项目。

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

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

如何只需单击一次就可以选择NSTableViews中的行(无论它们的窗口是否对焦)?

我将NSTableView分类。

-(BOOL)acceptsFirstMouse:(NSEvent *)theEvent {
   return YES;
}

创建NSTableView的IBOutlet:

IBOutlet NSTableView* yourTable;

把它绑在你的桌子上。

然后使用:

[window2 makeFirstResponder: yourTable];

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM