设为首页 加入收藏

TOP

IOS MenuController的部分操作
2017-10-13 10:29:09 】 浏览:773
Tags:IOS MenuController 部分 操作

这里我们要实现的将是选择按钮的自定义

综合上一节的随笔,这里给出效果图。

ViewController.m

//
//  ViewController.m
//  CX-MenuController
//
//  Created by ma c on 16/4/7.
//  Copyright © 2016年 xubaoaichiyu. All rights reserved.
//

#import "ViewController.h"
#import "CXLabel.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet CXLabel *label;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [self.webView loadHTMLString:@"<div>旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼</.div>" baseURL:nil];
    
    UILongPressGestureRecognizer * longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(click)];
    [self.label addGestureRecognizer:longPress];

    
}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    [self.view endEditing:YES];
    
}

- (void)click{
    //让自己成为第一响应者
    [self.label becomeFirstResponder];
    //初始化menu
    UIMenuController * menu = [UIMenuController sharedMenuController];
    
    UIMenuItem * xu = [[UIMenuItem alloc]initWithTitle:@"" action:@selector(xu)];
    UIMenuItem * bao = [[UIMenuItem alloc]initWithTitle:@"" action:@selector(bao)];
    UIMenuItem * ai = [[UIMenuItem alloc]initWithTitle:@"" action:@selector(ai)];
    UIMenuItem * chi = [[UIMenuItem alloc]initWithTitle:@"" action:@selector(chi)];
    UIMenuItem * yu = [[UIMenuItem alloc]initWithTitle:@"" action:@selector(yu)];
    
    menu.menuItems = @[xu,bao,ai,chi,yu];
    
    //设置menu的显示位置
    [menu setTargetRect:self.label.frame inView:self.view];
    //让menu显示并且伴有动画
    [menu setMenuVisible:YES animated:YES];
    
}

- (void)xu{
    
}
- (void)bao{
    
}
-(void)ai{
    
}
-(void)chi{
    
}
-(void)yu{
    
}

@end

CXLabel.m

//
//  CXLabel.m
//  CX-MenuController
//
//  Created by ma c on 16/4/7.
//  Copyright © 2016年 xubaoaichiyu. All rights reserved.
//

#import "CXLabel.h"

@implementation CXLabel

- (void)awakeFromNib{
    [self setup];
}
-(instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        [self setup];
    }
    return self;
}

- (void)setup{
    //允许用户交互
    self.userInteractionEnabled = YES;
}
//允许自己成为第一响应者
- (BOOL)canBecomeFirstResponder{
    return YES;
}
//Label能够执行哪些操作(menu)
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender{
  
//    if (action == @selector(copy:) || action == @selector(cut:) || action == @selector(paste:)) {
//        return YES;
//    }
    
    return NO;
}

- (void)copy:(id)sender{
    //复制版
    UIPasteboard * paste = [UIPasteboard generalPasteboard];
    
    paste.string = self.text;
    
}

- (void)cut:(id)sender{
    
    UIPasteboard * paste = [UIPasteboard generalPasteboard];
    
    paste.string = self.text;
    
    self.text = nil;
    
}

- (void)paste:(id)sender{
    
    UIPasteboard * paste = [UIPasteboard generalPasteboard];
    
    self.text = paste.string;
    
}




@end

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SDWebImage的使用 下一篇Learn how to Use UIPageViewCont..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目