Всплывающие окна UIMenu в CollectionView

Вот как я настроил всплывающие окна

UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Delete Patient"

                                                  action:@selector(customAction:)];



[[UIMenuController sharedMenuController] setMenuItems:@[menuItem]];

а затем добавьте требуемые методы

- (BOOL)canBecomeFirstResponder {

return YES;

}



- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {



NSLog(@"canPerformAction");

// The selector(s) should match your UIMenuItem selector

if (action == @selector(customAction:)) {

    return YES;

}

return NO;

}



- (void) customAction:(id) sender

{

for (Treatment *t in self.ptToDelete.patientRx) {

    [self.managedObjectContext deleteObject:t];

}



[self.managedObjectContext deleteObject:self.ptToDelete];



NSError *error = nil;

if (![self.managedObjectContext save:&error]) {

    NSLog(@"Error! %@", error);

}

}

Это работает для iOS6, но сейчас это не так. Следующий метод не вызывается, он должен вызываться, когда я нажимаю и удерживаю

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender

person DogCoffee    schedule 12.09.2013    source источник


Ответы (1)


Я обнаружил, что мне нужно иметь следующее в моем классе CollectionViewCell. Однако в ios6 этого не требовалось. Надеюсь, это сэкономит кому-то несколько часов.

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{

    // The selector/s should match your UIMenuItem selector
    if (action == @selector(customAction:)) {
        return YES;
    }
        return NO;
    }

- (void) customAction:(id)sender
{
    // do stuff
}
person DogCoffee    schedule 14.09.2013
comment
Я нашел то же самое. Та же проблема здесь: stackoverflow.com/questions/18906991/ - person nicolas; 23.09.2013
comment
для меня каким-то образом это сработало, как ответ, который я написал в этом сообщении: stackoverflow.com/a/18725322/1944351 Нет необходимости для добавления метода выше, когда вы точно следуете моему ответу. Примечание: canBecomeFirstResponder я тоже не добавлял (он не нужен) - person Nilz11; 28.09.2013
comment
для меня это была проблема с UISearchBar под iOS7. См. stackoverflow.com/a/19183509/388412. - person auco; 04.10.2013