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

时间:2012-11-26 20:23:10

标签: macos cocoa nstableview nstablecellview

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

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

2 个答案:

答案 0 :(得分:16)

我通过继承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

答案 1 :(得分:7)

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