UIMenuController的简单使用
2019独角兽企业重金招聘Python工程师标准>>>
//
// ZsyTextField.m
// UIMenuController使用简介
//
// Created by Zsy on 15/3/2.
// Copyright © 2017年 Zsy. All rights reserved.
//#import "ZsyTextField.h"@implementation ZsyTextField- (void)awakeFromNib {[self setUp];
}- (instancetype)initWithFrame:(CGRect)frame {if (self = [super initWithFrame:frame]) {[self setUp];}return self;
}- (void)setUp {self.userInteractionEnabled = YES;[self addGestureRecognizer:[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress)]];
}- (void)longPress {//1.设置label为第一响应者//通过设置第一响应者UIMenuController可以获得支持哪些操作的信息,操作怎么处理[self becomeFirstResponder];//2.设置UIMenuControllerUIMenuController * menu = [UIMenuController sharedMenuController];//当长按label的时候,这个方法会不断调用,menu就会出现一闪一闪不断显示,需要在此处进行判断if (menu.isMenuVisible) {return;}UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"剪切" action:@selector(myCut:)];UIMenuItem *item2 = [[UIMenuItem alloc] initWithTitle:@"粘贴" action:@selector(myPasete:)];UIMenuItem *item3 = [[UIMenuItem alloc] initWithTitle:@"清空" action:@selector(myEmpty:)];menu.menuItems = @[item1, item2, item3];[menu setTargetRect:self.bounds inView:self];[menu setMenuVisible:YES animated:YES];
}- (BOOL)canBecomeFirstResponder {return YES;
}- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {if (action == @selector(myCut:) || action == @selector(myPasete:) || action == @selector(myEmpty:)) {return YES;}return NO;
}- (void)myCut:(UIMenuController *)menu {[self copy:menu];self.text = nil;
}- (void)cut:(UIMenuController *)menu {[self copy:menu];self.text = nil;
}- (void)copy:(UIMenuController *)menu {if (!self.text) {return;}UIPasteboard *paste = [UIPasteboard generalPasteboard];paste.string = self.text;
}- (void)myPasete:(UIMenuController *)menu {UIPasteboard *paste = [UIPasteboard generalPasteboard];self.text = paste.string;
}- (void)myEmpty:(UIMenuController *)menu {self.text = nil;
}@end
转载于:https://my.oschina.net/zsyzone/blog/850189
UIMenuController的简单使用相关推荐
- 在docker上安装部署tomcat项目 超简单,拿来主义
在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...
- Linux下tomcat的安装与卸载以及配置(超简单)
无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...
- Docker安装Apache与运行简单的web服务——httpd helloworld
Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...
- Docker的安装、镜像源更换与简单应用
Docker的安装.镜像源更换与简单应用[阅读时间:约20分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.Docker的安装 四.Docker的简单应用 1. ...
- 基于Golang的简单web服务程序开发——CloudGo
基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...
- 简单图文配置golang+vscode【win10/centos7+golang helloworld+解决install failed等情况】
博客目录(阅读时间:10分钟) 一.win10 0.系统环境 1. win10配置golang环境 ①下载相关软件 ②创建gowork工作空间 ③配置环境变量(GOPATH+PATH) ④验证环境配置 ...
- 简单介绍互联网领域选择与营销方法
在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...
- JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性
一.什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的.停工时间,就是不能向用户提供服务的时间.高可用,就是系统具有高度可用性,尽量减少停工时间.如何用最简单的方法来搭建 ...
- java发送简单邮件_Java程序实现发送简单文本邮件
/** * Java程序实现发送简单文本邮件 * * @author Administrator * */ public class SendTextMail { // 定义发件人地址 public ...
最新文章
- GPU自动调度卷积层
- ubuntu下安装ftp服务器
- 微软摊开 AI 高分作业,在线求抄
- Python 程序扩展名(py, pyc, pyw, pyo, pyd) 及发布程序时的选择
- 服务器用户编码是什么,涨知识:英特尔服务器CPU编号是啥意思?
- 37.cgi网页交互
- 优秀编程网站收录集锦
- python心得-基本概念2
- linux检查防火墙是否阻挡端口,浅析linux查看防火墙状态和对外开放的端口状态...
- 使用JS清空fileupload 控件值
- 【Spark Summit East 2017】可扩展性机器学习的特征哈希
- 百练 04 简单的整数划分问题
- vue-cli本地的一个websocket
- mysqll索引实验
- 教你将视频作为背景添加到另一段视频中
- 信号与系统实验六 傅里叶分析方法的应用
- python分析《水浒传》小说,对文本数据内容清洗、分词、统计、词云可视化展示
- 怎样开发微信小程序(最初的页面)
- 一阶微分方程的物理意义_微分方程和积分方程有哪些典型的物理意义?实际中哪个更常用?...
- 从“网易邮箱被黑”看网页游戏账号安全