首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使NSControl (例如,NSTokenField)忽略鼠标事件

如何使NSControl (例如,NSTokenField)忽略鼠标事件
EN

Stack Overflow用户
提问于 2012-03-27 01:21:28
回答 1查看 796关注 0票数 1

具体地说,我想让NSTokenField忽略鼠标事件,因为我在NSTableCellView中使用它只是为了以标记化的方式显示数据,而不允许任何编辑。

设置token字段的enabled = NO是可行的,只是它会使令牌变灰并使文本难以阅读。

设置token字段的editable = NO与我想要的非常接近-它可以防止编辑,同时保留token字段的外观-除了当我将鼠标悬停在令牌上时,它们会亮起。如果我能阻止这一切,我就可以做生意了。

我怀疑我需要子类化一些东西并覆盖一些NSResponder方法,但不太确定要做什么。我尝试对NSTokenField进行子类化,并重写mouseEntered:mouseMoved:来什么也不做,但也不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-27 02:45:03

在尝试了很多东西之后,我终于在Iulius Cásar的建议下让它工作了。

诀窍是将NSTextField子类化并覆盖trackingAreas

代码语言:javascript
复制
- (NSArray *)trackingAreas
{
    return [NSArray array];
}

仅仅在创建字段时删除字段的跟踪区域是不够的,因为字段处于滚动视图中,有时会重新创建跟踪区域。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9876713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档