我正在写一个简单的Adobe Illustrator插件。从EmptyPanel示例开始,我向AIPanelPlatformWindow添加了一个NSCollectionView。CollectionView的设置与正常设置一样(委托、数据源等)。)。问题是,我没有得到任何与鼠标处理相关的委托事件(数据源我工作得很好-我所有的数据都显示在屏幕上)。
例如,- (void)collectionView:(NSCollectionView *)collectionView didSelectItemsAtIndexPaths:(NSSet<NSIndexPath *> *)indexPaths
从未被调用过。在使用相同代码的样例非AI插件中,一切工作正常。
我尝试过将NSCollectionView子类化并重载- (void)mouseDown:(NSEvent *)theEvent
,它确实偶尔会被调用,但并不总是如此。我也尝试过重载- (void)mouseUp:(NSEvent *)theEvent
,但ne从未被调用过。因此,看起来Adobe的代码以某种方式吞噬了事件,或者做了一些奇怪的事情。
我还尝试添加一个简单的NSButton,而不是NSCollectionView,看起来效果很好。
我不确定我做错了什么。有没有人有这方面的经验。有什么建议吗?
发布于 2016-02-13 00:40:22
试着调用mouseDown和mouseUp的超级实现,比如
super.mouseDown(event);
https://stackoverflow.com/questions/35321638
复制相似问题