• iOS 学习


    菜单事件包括,剪切、拷贝、全选、分享...,此 demo 只有 copy、share

    1.定义 field 继承与 UITextField

    - (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
        if (action == @selector(copy:)) {
            return YES;
        }
        return NO;
    }
    
    - (void)copy:(id)sender {
        [self resignFirstResponder];
        //持久化,退出程序 copy 的内容还在
        [[UIPasteboard generalPasteboard]setPersistent:YES];
        //拷贝的内容
        [[UIPasteboard generalPasteboard]setValue:self.text forPasteboardType:[UIPasteboardTypeListString objectAtIndex:0]];
    }

    2.ViewController 加载

    field = [[CCField alloc]initWithFrame:CGRectMake(100, 200, 100, 40)];
        field.backgroundColor = [UIColor greenColor];
        [self.view addSubview:field];
        
        UIMenuItem *shareItem = [[UIMenuItem alloc]initWithTitle:@"分享" action:@selector(click)];
        UIMenuController *menu = [UIMenuController sharedMenuController];
        [menu setMenuItems:[NSArray arrayWithObjects:shareItem, nil]];

    3.分享的实现,以微信为例,准备工作在这里

        SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc]init];
        // 使用文本信息
        sendReq.bText = YES;
        // 发到还有列表 , 默认是 0
        sendReq.scene = 0;
        
        sendReq.text = field.text;
        //发送分享信息
        [WXApi sendReq:sendReq];
        NSLog(@"213");

    二 自定义,使用 UIMenuController

    1.使 view 变成第一响应者

    2.初始化 UIMenuItem 加入 UIMenuController 中

    3.实现 canPerformAction: withSender: 方法

    还是以复制为例

    - (BOOL)canBecomeFirstResponder {
        return YES;
    }
    
    - (void)click:(UITapGestureRecognizer *)tap {
        //要显示 menu 必须将触碰的 View 设为第一响应对象
        [self.view becomeFirstResponder];
        UIMenuController *menuController = [UIMenuController sharedMenuController];
        UIMenuItem *copyItem = [[UIMenuItem alloc]initWithTitle:@"复制" action:@selector(click)];
        menuController.menuItems = @[copyItem];
        //设置 menu 的 frame和父 view
        [menuController setTargetRect:CGRectMake(_label.frame.origin.x, _label.frame.origin.y, 100, 50) inView:self.view];
        [menuController setMenuVisible:YES animated:YES];
    }

    完成demo 在 githud,点我查看

  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/asamu/p/5785356.html
Copyright © 2020-2023  润新知