gpt4 book ai didi

objective-c - 如何使 NSControl(例如 NSTokenField)忽略鼠标事件

转载 作者:行者123 更新时间:2023-12-03 17:05:20 25 4
gpt4 key购买 nike

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

设置标记字段的 enabled = NO 是有效的,只不过它会使标记变灰并使文本难以阅读。

设置 token 字段的 editable = NO 与我想要的非常接近 - 它可以防止编辑,同时保留 token 字段的外观 - 只不过当我将鼠标悬停在 token 上时,它们会亮起。如果我能阻止这种情况发生,我就能开展业务。

我怀疑我需要子类化某些东西并重写一些 NSResponder 方法,但不太确定该怎么做。我尝试子类化 NSTokenField 并覆盖 mouseEntered:mouseMoved: 不执行任何操作,但这也不起作用。

最佳答案

在尝试了很多东西之后,我终于根据 Iulius Cæsar 的建议成功了。

技巧是子类化 NSTextField 并覆盖 trackingAreas:

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

在创建字段时简单地删除字段的跟踪区域还不够,因为该字段处于 ScrollView 中,有时会重新创建跟踪区域。

关于objective-c - 如何使 NSControl(例如 NSTokenField)忽略鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com