2 qq 29574501 qq_29574501 于 2016.03.11 22:51 提问

iOS UIMenuController 在Label上添加自定义菜单栏,会与TextFile起冲突

代码:
#import "ViewController.h"

@interface ViewController ()

@property(nonatomic,strong)UILabel *lblTitle;
@property(nonatomic,strong)UITextField *txtTitle;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
self.lblTitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 0,200, 30)];
self.lblTitle.center=self.view.center;
self.lblTitle.userInteractionEnabled=YES;
self.lblTitle.textAlignment=NSTextAlignmentCenter;
self.lblTitle.text=@"156165156161651";
[self.view addSubview:self.lblTitle];

UILongPressGestureRecognizer *longPress=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];
[self.lblTitle addGestureRecognizer:longPress];

self.txtTitle=[[UITextField alloc]initWithFrame:CGRectMake(0, 0, 200, 30)];
self.txtTitle.center=CGPointMake(self.view.center.x, self.lblTitle.center.y+50);
self.txtTitle.borderStyle=UITextBorderStyleRoundedRect;
[self.view addSubview:self.txtTitle];


}

-(void)longPressAction:(UILongPressGestureRecognizer *)sender
{
if (sender.state==UIGestureRecognizerStateEnded)
{
    UIMenuItem *copyItem=[[UIMenuItem alloc]initWithTitle:@"复制" action:@selector(copyAction:)];
    UIMenuController *menuC=[UIMenuController sharedMenuController];
    [menuC setMenuItems:@[copyItem]];
    [menuC setTargetRect:sender.view.frame inView:self.view];
    [menuC setMenuVisible:YES animated:YES];
}
}

-(BOOL)canBecomeFirstResponder
{
return YES;
}

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action==@selector(copyAction:))
{
    return YES;
}
return NO;
}

-(void)copyAction:(UIMenuItem *)sender
{
UIPasteboard *pasteBoard=[UIPasteboard generalPasteboard];
pasteBoard.string=self.lblTitle.text;
NSLog(@"%@",pasteBoard.string);
}

图片说明

就是在txtfile的时候不显示自定义,只显示系统自带

1个回答

baidu_27566091
baidu_27566091   2016.03.14 10:44

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
为UILabel添加弹出UIMenuController功能
现在很多App,类似于新浪博客、QQ空间等都支持按住文字,然后弹出一个菜单让你可以选择复制、粘帖等功能。如下图所示 我们都知道这是通过UIMenuController来实现的,而文字的显示一般是通过UILabel来实现的,但是默认情况下UILabel并不支持UIMenuController。不过我们可以给它添加这么一个功能,下面看看具体如何做的。 UIMenuController须知
对UILabel添加UIMenuController扩展
一、UIMenuController认识 1、默认情况下,UITextView / UITextFiled / UIWebView 都有苹果自带的有UIMenuController功能二、对UILabel添加UIMenuController扩展1、新建一个SSCopyLabel,继承UIlabel,.m文件如下:#import "SSCopyLabel.h"@implementation
iOS - UIMenuController:UITextField去掉拷贝、粘贴,UILabel自定义长按拷贝
在使用微信过程中 你会发现长按消息会弹出复制、粘贴、撤回这样的选项并且带有箭头,在iOS开发中,实现这样的功能我们要用到的是UIMenuController,在iOS中,UITextField、UITextView都会有默认的UIMenuController,但是有时候我们并不希望使用这样的功能,输入框的粘贴复制往往能越过代理,导致我们不能有效的监控输入的内容,这时,我们需要自定义。
iOS-你真的会用UIMenuController吗?(详细)
请认真阅读,因为里面有很多细节! UIMenuController的介绍 什么是UIMenuController? UIMenuController是UIKit里面的控件UIMenuController的作用在开发中弹出的菜单栏后面介绍了菜单栏显示中文的设置 菜单栏 有哪些控件是自带UIMenuController菜单栏效果的呢? UITextFieldUI
iOS中UIMenuController基本使用
我这里用了一个按钮,点击按钮的时候给弹出UIMenuController控件 下面的代码是按钮触发事件: -(void)showPopupView:(UIButton *)button {     button.selected = !button.selected;     //必须要有,如果要UIMenuController显示    
UITableViewCell长按显示UIMenuController
UITableViewCell长按显示UIMenuController
swift-oc wkwebView使用自定义UIMenuController
对于cell单元格使用定制UIMenuController,大家可以参考这篇文章给TableViewCell添加自定义定制(注意是定制 )UIMenuController的两种方法对于label使用定制UIMenuController,大家可以参考这篇文章为UILabel添加弹出UIMenuController功能对于UITextfield使用定制UIMenuController,大家可以参考这篇文
UIMenuController不显示的解决办法
- (void)pressme:(id)sender {     [self becomeFirstResponder]; // 用于UIMenuController显示,缺一不可     UIMenuItem *flag = [[UIMenuItem alloc] initWithTitle:@"拷贝"action:@selector(copyContent:)];
Swift UIMenuController中的坑
由于自己喜欢看段子,最近做了一个看段子的APP。主要是因为 网易新闻 和 今日头条 分享段子的姿势恕我不能忍。 完成后的效果 2017-02-21 16_00_55.gif 你只需要点击你想要分享的段子 然后选择 QQ 或者 Wechat ,跳转后点击粘贴就好了  不用像 网易新闻 和 今日头条 分享一个链接,别人想看还得点进去。当然他们也可以复制,但是那姿势
UITextView长按弹出UIMenuController,剪切拷贝选择全选粘贴删除
- (BOOL) canBecomeFirstResponder {     return YES; } - (BOOL) canPerformAction:(SEL)action withSender:(id)sender {     if ( [UIMenuController sharedMenuController] ) {        [U