我有一个基于NSTableView的视图,其中单元格包含许多控件,包括文本字段和编辑字段。当用户尝试单击单元格中的控件以便(例如)开始编辑文本字段时,将忽略单击的主要目标并选择单元格。然后需要再次单击以执行最初预期的操作,即使此单击在考虑之前也会有延迟。
如何避免此问题并选择行并将鼠标事件一次性转发给控件?
答案 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。