右键单击 TableViewCell 时显示 popOver

Show popOver when right click on TableViewCell

我有一个 NSTableView,如果用户右键单击某行,我想显示一个 popOver。所以我有这个功能:

 override func rightMouseDown(theEvent: NSEvent) {
    super.rightMouseDown(theEvent)
    var point: NSPoint = talbeView.convertPoint(theEvent.locationInWindow, fromView: nil)
    var row = tableView.rowAtPoint(point)
    var rec = tableView.rectOfRow(row)

    let storyboard = NSStoryboard(name: "Main", bundle: nil)
    let popOverViewController = storyboard!.instantiateControllerWithIdentifier("RightMousPopOver") as! NSViewController
    var cell: DocumentCellView = tableView.viewAtColumn(0, row: row, makeIfNecessary: true) as! DocumentCellView
    self.presentViewController(popOverViewController, asPopoverRelativeToRect: rec, ofView: cell, preferredEdge: 2, behavior: NSPopoverBehavior.Transient)
}

但是只有当我右击第一行时才会出现popOver。我已经调试了该行及其右侧。此外,如果我更改行 manuelle,popOver 会显示在右行,但仅当我单击第一行时才会再次显示。

我有点困惑。我的代码有什么问题?

好的,我想我找到了答案。 tableView.rectOfRow(row) 为假。 cell.frame 是获取 NSRec

的正确方法