在AIPanelPlatformWindow中选择NSCollectionView的委托

时间:2016-02-10 17:12:02

标签: plugins adobe adobe-illustrator nscollectionview

我正在编写一个简单的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,这似乎工作正常。

我不确定我做错了什么。有没有人有这种类型的经验。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试调用mouseDown和mouseUp的SUPER实现,如

super.mouseDown(event);