NSTableView - 选择行并立即响应鼠标事件

tar*_*mes 3 macos cocoa nstableview nstablecellview

我有一个基于NSTableView的视图,其中单元格包含许多控件,包括文本字段和编辑字段.当用户尝试单击单元格中的控件以便(例如)开始编辑文本字段时,将忽略单击的主要目标并选择单元格.然后需要再次单击以执行最初预期的操作,即使此单击在考虑之前也会受到延迟.

如何避免此问题并选择行并将鼠标事件一次性转发到控件?

tar*_*mes 17

我通过继承NSTableView解决了这个问题:

@implementation QuickResponseTableView

- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event
{
    // This allows the user to click on controls within a cell withough first having to select the cell row
    return YES;
}

@end
Run Code Online (Sandbox Code Playgroud)

  • FWIW,这是正确的答案(Corbin,他写了View Based NSTableView) (2认同)

trs*_*rss 7

有同样的问题.经过多次努力,当我选择None与IB中的选项的默认Regular(其他选项Source List)时,它神奇地起作用Highlight!接受的答案似乎更具体,但与此相比有点hacky.