CollectionView 中的 UIMenu 弹出框
Posted
技术标签:
【中文标题】CollectionView 中的 UIMenu 弹出框【英文标题】:UIMenu popovers in CollectionView 【发布时间】:2013-09-12 21:01:45 【问题描述】:这就是我设置弹出框的方式
UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Delete Patient"
action:@selector(customAction:)];
[[UIMenuController sharedMenuController] setMenuItems:@[menuItem]];
然后添加require方法
- (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
【问题讨论】:
【参考方案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
【讨论】:
我发现了同样的事情。同样的问题:***.com/questions/18906991/… 对我来说,它确实像我在这篇文章中写的答案一样工作:***.com/a/18725322/1944351 当您完全按照我的回答时,无需添加上述方法。注意:我也没有添加 canBecomeFirstResponder(不需要) 对我来说这是 iOS7 下 UISearchBar 的问题。见***.com/a/19183509/388412以上是关于CollectionView 中的 UIMenu 弹出框的主要内容,如果未能解决你的问题,请参考以下文章