我正在编写一个简单的Adobe Illustrator插件。从EmptyPanel示例开始,我已经向AIPanelPlatformWindow添加了一个NSCollectionView。 CollectionView的设置与正常情况一样(委托,数据源等)。问题是,我没有得到任何与鼠标处理相关的委托事件(数据源我工作正常 - 我在屏幕上看到了所有数据)。
例如,- (void)collectionView:(NSCollectionView *)collectionView didSelectItemsAtIndexPaths:(NSSet<NSIndexPath *> *)indexPaths
永远不会被调用。在使用相同代码的示例非AI插件中,一切正常。
我已经尝试了继承NSCollectionView并重载- (void)mouseDown:(NSEvent *)theEvent
并且偶尔会调用它,但并非总是如此。我也试过重载- (void)mouseUp:(NSEvent *)theEvent
并且永远不会被调用。所以看起来Adobe的代码在某种程度上吃掉了事件或做了一些奇怪的事情。
我也试过添加一个简单的NSButton而不是NSCollectionView,这似乎工作正常。
我不确定我做错了什么。有没有人有这种类型的经验。有什么建议吗?
答案 0 :(得分:0)
尝试调用mouseDown和mouseUp的SUPER实现,如
super.mouseDown(event);