在我的NSCollectionViewItem
我设置了一个 mouseDown 函数,它setSelected()
在视图中调用一个函数。
override func mouseDown(with event: NSEvent) {
(self.view as! ListTableViewCell).setHighlighted(true, animated: true, completionHandler:{
print("completionHandler called")
self.delegate?.collectionViewItem(self, didSelectAtIndexPath: self.indexPath!)
super.mouseDown(with: event)
})
}
如您所见,在 completionHandler 中,我随后调用委托并告诉它已选择了一个单元格。然后在该委托函数中取消选择该行。
override func tableView(_ tableView: AppTableView, didSelectRowAtIndexPath indexPath: IndexPath) {
print("didSelectRowAtIndexPath()")
tableView.deselectRow(at: indexPath, animated: true)
print(indexPath)
}
此代码有效,但在执行时,它几乎立即执行,使 backgroundColor 更改不可见。我怎样才能动画这个?还是放慢速度?或者还有其他解决方案吗?