Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSTableCellView中的NSStepper无效_Objective C_Nstablecellview - Fatal编程技术网

Objective c NSTableCellView中的NSStepper无效

Objective c NSTableCellView中的NSStepper无效,objective-c,nstablecellview,Objective C,Nstablecellview,我在基于视图的表视图中使用常规(非子类)NSTableCellView。它具有初始图像和文本字段视图。我在视图中添加了一个NSStepper 文本字段绑定到tableCellView.objectValue.quantity。 步进器的值也绑定到tableCellView.objectValue.quantity 问题是,当运行应用程序时,当我单击步进器时,它似乎没有得到鼠标事件,箭头也没有突出显示,值没有增加或减少 如果我设置了表视图的双重操作,如果我双击步进器,它就会被触发,就像它是透明的一

我在基于视图的表视图中使用常规(非子类)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