问题描述
是否有一种简单的方法可以在点击单元格时实现复制菜单,而不是对UITableViewCell进行子类化?
Is there a simple way to implement the copy menu when a cell is tapped, instead of subclassing the UITableViewCell?
谢谢
RL
推荐答案
是的!
从- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
(UITableView的委托方法)中调用[[UIMenuController sharedMenuController] setMenuVisible:YES animated:ani]
(其中ani
是BOOL
确定控制器是否应设置动画)
Yes!
Call [[UIMenuController sharedMenuController] setMenuVisible:YES animated:ani]
(where ani
is a BOOL
determining whether the controller should be animated) from within - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
( UITableView's delegate method)
默认情况下,UIMenuController
上的复制"命令不会复制detailTextLabel.text
文本.但是,有一种解决方法.将以下代码添加到您的课程中.
The 'copy' command on the UIMenuController
will not by default copy the detailTextLabel.text
text. However, there is a workaround. Add the following code into your class.
-(void)copy:(id)sender {
[[UIPasteboard generalPasteboard] setString:detailTextLabel.text];
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if(action == @selector(copy:)) {
return YES;
}
else {
return [super canPerformAction:action withSender:sender];
}
}
这篇关于在UITableViewCell中显示UIMenuController,分组样式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!