具体地说,我想让NSTokenField忽略鼠标事件,因为我在NSTableCellView中使用它只是为了以标记化的方式显示数据,而不允许任何编辑。
设置token字段的enabled = NO是可行的,只是它会使令牌变灰并使文本难以阅读。
设置token字段的editable = NO与我想要的非常接近-它可以防止编辑,同时保留token字段的外观-除了当我将鼠标悬停在令牌上时,它们会亮起。如果我能阻止这一切,我就可以做生意了。
我怀疑我需要子类化一些东西并覆盖一些NSResponder方法,但不太确定要做什么。我尝试对NSTokenField进行子类化,并重写mouseEntered:和mouseMoved:来什么也不做,但也不起作用。
发布于 2012-03-27 02:45:03
在尝试了很多东西之后,我终于在Iulius Cásar的建议下让它工作了。
诀窍是将NSTextField子类化并覆盖trackingAreas
- (NSArray *)trackingAreas
{
return [NSArray array];
}仅仅在创建字段时删除字段的跟踪区域是不够的,因为字段处于滚动视图中,有时会重新创建跟踪区域。
https://stackoverflow.com/questions/9876713
复制相似问题