长按cell 显示剪贴板选项,在cell上添加手势,把处理方法放在delegateVC 里面,如果VC本身有textView,不释放键盘
#pragma mark - 剪贴板
//剪贴板
- (void)showCopyMenu:(id)cell {
if (self.menuVisible) {
return;
}
BOOL haskeyboard = NO;
if ([self.iTextView isFirstResponder]) {
haskeyboard = YES;
self.donotHideKeyBoard = YES;
}
self.iCopyCell = cell;
[self becomeFirstResponder];
UIMenuController * menu = [UIMenuController sharedMenuController];
[menu update];
CGRect frame = [cell frame];
frame.origin.y +=25;
[menu setTargetRect: frame inView: self.iTableView];
[menu setMenuVisible: YES animated: YES];
if (haskeyboard) {
[self.iTextView becomeFirstResponder];
}
}
-(void)setMenuHidden:(NSNotification*)aNoti{
self.menuVisible = NO;
}
-(void)setMenuShow:(NSNotification*)aNoti{
self.menuVisible = YES;
}
-(BOOL)canBecomeFirstResponder{
return YES;
}
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
if (action == @selector(copy:)) {
return YES;
}
else
{
return [super canPerformAction:action withSender:sender];
}
}
-(void)copy:(id)sender{
if ([sender isKindOfClass:[UIMenuController class]]) {
if (self.iCopyCell) {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString:self.iCopyCell.iMessageLabel.text];
}
}
}
#pragma mark KeyBoardNotification
- (void)keyboardWillHide:(NSNotification *)notification
{
if (self.donotHideKeyBoard) {
return;
}
//加其他代码
}