Dans une UICollectionView, pour faire un menu, le plus simple est d'utiliser une des fonctions delegate standard. La création de cette fonction lancera automatiquement un gestionnaire d'appuie long, et l'affichage du menu au bon endroit. - ( UIContextMenuConfiguration *) collectionView :( UICollectionView *)collectionView contextMenuConfigurationForItemAtIndexPath :( nonnull NSIndexPath *)indexPath point :( CGPoint )point { return [ UIContextMenuConfiguration configurationWithIdentifier : nil previewProvider : nil actionProvider :^ UIMenu *( NSArray < UIMenuElement *> *suggestedActions) { return [ UIMenu menuWithTitle : @"" children : @[ [ UIAction actio...
UIMenuController et IOS12+ Que l'on soit avec une UICollectionView ou un UITableView, on a souvent besoin d'un menu contextuel. Apple offre plusieurs possibilités pour faire ce menu, certaines sont dépendante du fait d'être dans une collection ou dans une vue, d'autres change selon que l'on soit sur iPad ou sur iPhone. Normalement, la solution la plus stable/standard est le UIMenuController. On a un UIMenuController global (puisqu'il n'y a pas de raison d'avoir plusieurs menus contextuels en même temps), que l'on appelle avec : menu = [ UIMenuController sharedMenuController ]; Reste à donner les éléments du menu, les coordonnées de l'objet dont on veut ouvrir le menu et la vue dans laquelle placer le menu. Pour les éléments du menu, les items, on utiliser un tableau de UIMenuItem. UIMenuItem *item_absences = [[ UIMenuItem alloc ] initWithTitle : @"Absences" action : @selector (absences:)]; UIMenuItem *it...