1

在我的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 更改不可见。我怎样才能动画这个?还是放慢速度?或者还有其他解决方案吗?

4

0 回答 0