【问题标题】:NSTableHeaderCell detect mouse down?NSTableHeaderCell 检测鼠标按下?
【发布时间】:2014-03-12 13:41:38
【问题描述】:

我正在尝试自定义 NSTableHeaderCell 以检测鼠标点击。在过去,我使用过诸如NSTrackingArea 或覆盖mouseDown 事件之类的东西,例如:

-(void)mouseDown:(NSEvent *)theEvent
{
    NSLog(@"Mouse down");
}

这些方法似乎不能在 NSTableHeaderCell 上正常工作,因为它是一个单元格而不是一个视图。

有人对检测单元格上的鼠标事件有什么建议吗?具体来说,我想捕捉第一次点击(连同它的位置)。

【问题讨论】:

    标签: cocoa nstableview nscell nstableheadercell


    【解决方案1】:

    AppKit 设计的处理方式是通过您的NSTableViewDelegate

    tableView:mouseDownInHeaderOfTableColumn:
    '告诉代理在指定表格列的标题中单击了鼠标按钮。'

    除非您有非常具体的需要来实际处理单元格中的鼠标按下,否则在您的委托中实现该方法可能更容易。

    【讨论】:

    • 有了tableView:mouseDownInHeaderOfTableColumn: 就没有办法取消活动了吗?因此,如果您的列是可排序的,这将导致表格排序......在我的情况下,我在标题单元格中有一个图标,我试图在该图标上引发一个事件。我想我几乎已经用另一种方法弄清楚了,但只是为了检查,在使用 tableView:mouseDownInHeaderOfTableColumn: 委托时是否有办法取消排序?
    猜你喜欢
    • 1970-01-01
    • 2011-04-26
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    相关资源
    最近更新 更多