如何使的NSControl(例如,NSTokenField)忽略鼠标事件(How to make a

2019-10-16 13:48发布

具体来说,我想打一个NSTokenField忽略鼠标事件,因为我用它在NSTableCellView只是不打任何编辑显示一个切分方式的数据。

设置令牌场的enabled = NO的作品,但它变灰的标记,并使其难以阅读的文本。

设置令牌字段的editable = NO是非常接近我想要什么,它可以防止编辑,同时保留标记字段的查询,只是当我将鼠标放在令牌,他们点亮。 如果我能防止这种情况,我会在企业。

我怀疑我需要继承的东西,并覆盖某些NSResponder的方法,但并不完全知道该怎么做。 我试着子类NSTokenField和压倒一切mouseEntered:mouseMoved:什么也不做,但也不能工作。

Answer 1:

尝试了很多东西后,我终于得到这个基础上尤利乌斯凯撒的建议工作。

诀窍是要继承NSTextField和覆盖trackingAreas

- (NSArray *)trackingAreas
{
    return [NSArray array];
}

创建它是不是很够,因为现场是在一个滚动视图,有时跟踪区域将被重新创建时,直接删除该字段的跟踪区域。



文章来源: How to make an NSControl (e.g., NSTokenField) ignore mouse events