IOS学习笔记35——UIPasteboard/UIMenuController(一)

  今晚称有点时间,就分享下今天的成果,剪贴板的使用以及自定义剪贴板。

   系统剪贴板的直接调用

      其实整个过程非常的简单,我就用我写的一个自定义UILable来说明调用系统剪贴板。

     首先,因为苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以一般控件的剪贴板都被禁用了,因此,我们首先要做的就是把这属性放出来,其实就是实现三个简单的方法,方法如下:

 响应方法

- (BOOL)canBecomeFirstResponder{

    returnYES;

}

//"反馈"关心的功能,即放出你需要的功能,比如你要放出copy,你就返回YES,否则返回NO;

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

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

        returnYES;

    }

    else if (action ==@selector(paste:)){

        return YES;

    }

    else if (action ==@selector(cut:)){

        returnNO;

    }

    else if(action ==@selector(select:)){

        returnNO;

    }

    else if (action ==@selector(delete:)){

        returnNO;

    }

   return NO;

}

  OK,开放控件的剪贴板功能已经放出,剩下的就是实现了

//UILabel默认是不接收事件的,我们需要自己添加touch事件

-(void)attachTapHandler{

    self.userInteractionEnabled =YES//用户交互的总开关

    UITapGestureRecognizer *touch = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleTap:)];

    touch.numberOfTapsRequired =1;

    [selfaddGestureRecognizer:touch];

    [touch release];

}

响应点击事件

-(void)handleTap:(UIGestureRecognizer*) recognizer{

     [selfbecomeFirstResponder];

    UIMenuController *menu = [UIMenuControllersharedMenuController];

    [menu setTargetRect:self.frameinView:self.superview];

    [menu setMenuVisible:YESanimated:YES];

}

OK,此处已经可以点击出COPY菜单了,下面就是对你copy和paste的实现了

//针对于copy的实现

-(void)copy:(id)sender{

    

    UIPasteboard *pboard = [UIPasteboardgeneralPasteboard];

    pboard.string = self.text;

}


- (void)paste:(id)sender{

    

    self.textAlignment =UITextAlignmentRight;

    UIPasteboard *pboard = [UIPasteboardgeneralPasteboard];

    self.text = [NSStringstringWithFormat:@"粘贴内容:%@",pboard.string];

    NSLog(@"pboard.string : %@",pboard.string);

}

自此,一个可复制的UILabel遍腾空出世了,呵呵,下一版在总结总结 UITableView里面剪贴板的使用。‘

特附上程序图3张。






  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值