UIPasteboard粘贴板:UITableView复制粘贴功能(二)
2015-04-29 09:56
405 查看
这篇咱写写一写在UITableView上实用剪贴板的两种方法;
一:在自定义cell里面使用
其实,在cell的使用跟在label里面的用法基本一样
1.放方法:
- (BOOL)canBecomeFirstResponder{
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender{
if (action == @selector(cut:)){
return NO;
}
else if(action == @selector(copy:)){
return YES;
}
else if(action == @selector(paste:)){
return NO;
}
else if(action == @selector(select:)){
return NO;
}
else if(action == @selector(selectAll:)){
return NO;
}
else{
return [super canPerformAction:action withSender:sender];
}
}
然后呢,当然就是 实现copy方法拉。。
- (void)copy:(id)sender {
NSLog(@"copy");
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString:[[self textLabel]text]];
}
不过还有最重要的一步,上此方法,它的意思是用来激发copy菜单哦。
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
[[self delegate] performSelector:@selector(showMenu:)
withObject:self afterDelay:0.9f];
[super setHighlighted:highlighted animated:animated];
}
至于生成菜单,大家应该已经经过上一篇的阅读,已经很熟悉了,看代码:
//显示菜单
- (void)showMenu:(id)cell {
if ([cell isHighlighted]) {
[cell becomeFirstResponder];
UIMenuController * menu = [UIMenuController sharedMenuController];
[menu setTargetRect: [cell frame] inView: [self view]];
[menu setMenuVisible: YES animated: YES];
}
}
OK,剩下的至于如何实用自定义的cell,大家应该已经很熟练了吧,我就不在一一介绍了,自此,第一种使用剪贴板的方法介绍完毕
二:第二种就更简单了,因为(__MAC_NA,__IPHONE_5_0)以后已经放出了3个方法,非常好用,我直接就上方法拉。
-(BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
-(BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
if (action == @selector(copy:)) {
return YES;
}
return NO;
}
-(void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
UITableViewCell *cell = [tableView
cellForRowAtIndexPath:indexPath];
if (action == @selector(copy:)) {
[UIPasteboard
generalPasteboard].string = cell.textLabel.text;
}
}
一:在自定义cell里面使用
其实,在cell的使用跟在label里面的用法基本一样
1.放方法:
- (BOOL)canBecomeFirstResponder{
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender{
if (action == @selector(cut:)){
return NO;
}
else if(action == @selector(copy:)){
return YES;
}
else if(action == @selector(paste:)){
return NO;
}
else if(action == @selector(select:)){
return NO;
}
else if(action == @selector(selectAll:)){
return NO;
}
else{
return [super canPerformAction:action withSender:sender];
}
}
然后呢,当然就是 实现copy方法拉。。
- (void)copy:(id)sender {
NSLog(@"copy");
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString:[[self textLabel]text]];
}
不过还有最重要的一步,上此方法,它的意思是用来激发copy菜单哦。
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
[[self delegate] performSelector:@selector(showMenu:)
withObject:self afterDelay:0.9f];
[super setHighlighted:highlighted animated:animated];
}
至于生成菜单,大家应该已经经过上一篇的阅读,已经很熟悉了,看代码:
//显示菜单
- (void)showMenu:(id)cell {
if ([cell isHighlighted]) {
[cell becomeFirstResponder];
UIMenuController * menu = [UIMenuController sharedMenuController];
[menu setTargetRect: [cell frame] inView: [self view]];
[menu setMenuVisible: YES animated: YES];
}
}
OK,剩下的至于如何实用自定义的cell,大家应该已经很熟练了吧,我就不在一一介绍了,自此,第一种使用剪贴板的方法介绍完毕
二:第二种就更简单了,因为(__MAC_NA,__IPHONE_5_0)以后已经放出了3个方法,非常好用,我直接就上方法拉。
-(BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
-(BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
if (action == @selector(copy:)) {
return YES;
}
return NO;
}
-(void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
UITableViewCell *cell = [tableView
cellForRowAtIndexPath:indexPath];
if (action == @selector(copy:)) {
[UIPasteboard
generalPasteboard].string = cell.textLabel.text;
}
}
相关文章推荐
- UIPasteboard 粘贴板,复制粘贴UILabel,UIImageView的数据
- 【android】TextView文本的 “选择文字”“复制” “粘贴” 功能的实现
- iOS实现UITableView左滑删除复制即用功能
- js实现pc浏览器复制粘贴功能
- UITableView实现下拉刷新添加数据功能
- ios-day13-01(私人通讯录。控制器之间的数据传递、保存密码和自动登录的实现、普通对象的归档、UITableView的局部刷新和向左滑动删除功能等等)
- WebView长按弹出复制粘贴
- iOS开发:UITableview的多选功能实现
- [操作系统][图]Windows 8 复制粘贴功能截图出现 可暂停复制
- iOS UITableView表格做搜索功能,右边的搜索按钮
- IOS UITableView多选删除功能
- 常用的JS屏蔽功能(右键、查看源文件、复制、剪切、粘贴、后退、F1、F5、Ctrl+N、Shift+F10、Alt+F4)
- vim与系统粘贴板复制、粘贴
- UIMenuItem 模仿扣 4000 扣,微信聊天记录中长按转发,复制,粘贴等功能
- UITableView实现删除功能 后刷新页面遇到的问题。
- iOS - UITableView cell中添加展开关闭的功能(cell高度动态变化)
- iphone开发之实现UITableView多选删除功能详解
- 复制-粘贴功能
- Linux下vi编辑器粘贴复制剪切功能
- Swift UITableView相关功能(三)设置每行显示的内容