Objective c NSTableCellView中的NSStepper无效
我在基于视图的表视图中使用常规(非子类)NSTableCellView。它具有初始图像和文本字段视图。我在视图中添加了一个NSStepper 文本字段绑定到tableCellView.objectValue.quantity。 步进器的值也绑定到tableCellView.objectValue.quantity 问题是,当运行应用程序时,当我单击步进器时,它似乎没有得到鼠标事件,箭头也没有突出显示,值没有增加或减少 如果我设置了表视图的双重操作,如果我双击步进器,它就会被触发,就像它是透明的一样 我错过了什么Objective c NSTableCellView中的NSStepper无效,objective-c,nstablecellview,Objective C,Nstablecellview,我在基于视图的表视图中使用常规(非子类)NSTableCellView。它具有初始图像和文本字段视图。我在视图中添加了一个NSStepper 文本字段绑定到tableCellView.objectValue.quantity。 步进器的值也绑定到tableCellView.objectValue.quantity 问题是,当运行应用程序时,当我单击步进器时,它似乎没有得到鼠标事件,箭头也没有突出显示,值没有增加或减少 如果我设置了表视图的双重操作,如果我双击步进器,它就会被触发,就像它是透明的一
谢谢 您应该查看文档,但最简单的是您需要将NSTableView子类化并重写此方法以验证建议的第一响应者。如文档所述,NSTableViews不允许使用某些控件,除非首先选择该行。即使如此,它仍然可以丢弃一些
- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event {
return YES;
}
根据Robert Payne的正确答案,使用Swift可以向NSTableView添加扩展,而不是将其子类化
extension NSTableView {
override public func validateProposedFirstResponder(responder: NSResponder, forEvent event: NSEvent?) -> Bool {
return true
}
}
我想强调的是,这是NSTableView,而不是NSTableViewCell