无法在iOS8中显示UICollectionView菜单

时间:2014-09-08 18:58:32

标签: ios uicollectionview ios8 uimenucontroller

我试图让UIMenu出现在集合视图中。

我已设置好菜单

UIMenuItem* deleteItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"DELETE", @"Supprimer") action:@selector(deleteShow:)];
UIMenuItem* archiveItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"ARCHIVE", @"Archiver") action:@selector(archiveShow:)];
UIMenuItem* unarchiveItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"UNARCHIVE", @"Restaurer") action:@selector(unArchiveShow:)];

[[UIMenuController sharedMenuController] setMenuItems:@[deleteItem,archiveItem,unarchiveItem]];

我在Collection View Delegate中实现了以下方法:

- (BOOL)collectionView:(UICollectionView *)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath
- (BOOL)collectionView:(UICollectionView *)collectionView canPerformAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender
- (void)collectionView:(UICollectionView *)collectionView performAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender

前两个总是返回YES。 但长按时没有菜单显示。甚至不是标准的剪切/复制/粘贴菜单。 有人经历过这样的事吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

花了一些时间来解决这个问题。发现如果你没有在UICollectionViewCell的子类中实现“deleteShow:”等方法,菜单项就不会显示出来。