我有一个基于视图的 NSTableView,其中的单元格包含许多控件,包括文本字段和编辑字段。例如,当用户尝试单击单元格中的控件以开始编辑文本字段时,将忽略单击的主要目标并选择单元格。然后需要再次单击来执行最初打算执行的操作,即使此单击在考虑到它之前也会受到延迟。
如何避免此问题并一次性选择行并将鼠标事件转发到控件?
我有一个基于视图的 NSTableView,其中的单元格包含许多控件,包括文本字段和编辑字段。例如,当用户尝试单击单元格中的控件以开始编辑文本字段时,将忽略单击的主要目标并选择单元格。然后需要再次单击来执行最初打算执行的操作,即使此单击在考虑到它之前也会受到延迟。
如何避免此问题并一次性选择行并将鼠标事件转发到控件?
我通过继承 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
有同样的问题。经过一番努力,当我在 IB中选择None
默认Regular
选项(其他选项是Source List
)时,它神奇地起作用了!Highlight
与此相比,接受的答案似乎更具体,但有点老套。