UIMenuController的使用,对UILabel拷贝以及定制菜单

用户和实体行为分析(UEBA)基础指南及解决方案 用户和实体行为分析(UEBA)或异常检测是一种网络安全技术,它使用机器学习(ML)算法来检测网络中用户、主机和其他实体的异常活动。 阅读详情

1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES 这个一定要返回YES

2. Menu所处的View必须实现 – (BOOL)canPerformAction:withSender, 并根据需求返回YES或NO

3. 使Menu所处的View成为First Responder (becomeFirstResponder)

4. 定位Menu (- setTargetRect:inView:)

5. 展示Menu (- setMenuVisible:animated:)

//
//  ViewController.m
//  UIMenuController
//
//  Created by 陆巧怡 on 15/9/6.
//  Copyright © 2015年 Simon. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) UILabel *label;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 300, 30)];
    self.label.text = @"点击出现UIMenuController";
    self.label.userInteractionEnabled = YES;
    [self.view addSubview:self.label];
    
    
    UITapGestureRecognizer *touch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    touch.numberOfTapsRequired = 1;
    [self.label addGestureRecognizer:touch];
    
}

-(void)handleTap:(UIGestureRecognizer*) recognizer{
    //是当前的对象成为第一响应者
    [self becomeFirstResponder];
    //创建UIMenuController的控件
    UIMenuItem *flag = [[UIMenuItem alloc] initWithTitle:@"国旗" action:@selector(flag:)];
    UIMenuItem *approve = [[UIMenuItem alloc] initWithTitle:@"Approve" action:@selector(approve:)];
    UIMenuItem *deny = [[UIMenuItem alloc] initWithTitle:@"Deny" action:@selector(deny:)];
    
    UIMenuController *menu = [UIMenuController sharedMenuController];
    [menu setMenuVisible:NO];

    [menu setMenuItems:[NSArray arrayWithObjects:flag, approve, deny, nil]];
    [menu setTargetRect:self.label.frame inView:self.label.superview];
    [menu setMenuVisible:YES animated:YES];
}

#pragma mark UIMenuController 控件方法
- (void)flag:(id)sender {
    NSLog(@"国旗");
}

- (void)approve:(id)sender {
    NSLog(@"Approve");
}

- (void)deny:(id)sender {
    NSLog(@"Deny");
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}
#pragma mark 默认是为NO的。这里一定要设置成YES 要不然就不会出现
- (BOOL)canBecomeFirstResponder{
    return YES;
}

//针对于copy的实现
-(void)copy:(id)sender{
    //这里是粘贴板 可以复制文字,图片
    UIPasteboard *pboard = [UIPasteboard generalPasteboard];
    pboard.string = self.label.text;
}

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
    
    //这里也是间接影响显示在UIMenuController的控件
    if (action == @selector(copy:)) {
        return YES;
    }else if (action == @selector(flag:)){
        return NO;
    }else if (action == @selector(approve:)){
        return YES;
    }else if (action == @selector(deny:)){
        return YES;
    }else{
        return [super canPerformAction:action withSender:sender];
    }

}

@end



手把手教你用差分放大电路搭建LC振荡器(实测频率误差分析) 本文通过一个差分放大电路搭建LC振荡器的实践案例,深入分析了实测频率与理论值产生显著误差的原因。核心在于共模电感的互感效应改变了谐振回路的等效电感,导致频率偏差。文章提供了从电路搭建、误差根源剖析到波形优化与稳定性提升的完整解决方案,帮助电子爱好者深入理解模拟电路的实际行为。 阅读详情

相关推荐

QT项目实战:如何在正点原子Linux开发板上集成CVR-100UC身份证阅读器(附完整代码)

本文详细介绍了在正点原子Linux开发板上集成CVR-100UC身份证阅读器的完整实战流程。内容涵盖驱动适配、库文件部署、QT项目框架搭建、核心功能封装以及界面集成,并提供了完整的代码示例,帮助开发者快速实现嵌入式环境下的身份证信息读取功能。

yyy34的博客 258

iOS UIMenuController简介及使用 —— HERO博客

UIMenuController简介:UIMenuController为菜单控制器,是一个单例对象,继承NSObject,用来剪切、拷贝、粘贴等操作。UIMenuController使用:获取UIMenuController对象:UIMenuController *menu = [UIMenuController sharedMenuController]; 设置显示或者隐藏://通过menuVi...

hero_wqb的博客 1919

IAR调试CC1310的错误:Fatal error:Failed to connect to the XDS emlulator (Error -241 @ 0x0:)

从simplelink_cc13x0_sdk_2_10_00_36导入collector工程后,rebuild后进行debug,出现了如图错误:Fatal error:Failed to connect to the XDS emlulator (connect ICEPick)...(Error -241 @ 0x0)A router subpath could not be accessed....

qq_40417648的博客 6228

UIMenuController—为UILabel添加UIMenuController

最近做项目,项目中有一处要使用pickerView进行日期的选择,即点击textField,下方弹出的不是键盘,而是pickerView。按要求,此textField不可编辑,由于弹出pickerView取代键盘的逻辑已经写好,我只需做两件事: (1)去掉此textField右侧的叉号(用于点击删除整行)textField.clearButtonMod...

weixin_33928137的博客 188

Word公式一键转MathType保姆级教程(附omml2mml.xsl报错终极解决方案)

本文提供Word公式一键转MathType的保姆级教程,重点解决常见的omml2mml.xsl报错问题。通过详细分析报错原因、官方解决方案实操步骤及转换后格式优化技巧,帮助用户高效完成公式转换,适用于科研论文和商业文档编辑。

weixin_30082367的博客 554

打开 AI 投研新时代 —— 深度解析 GitHub 高星项目 daily_stock_analysis

GitHub热门开源项目"daily_stock_analysis"是一款AI驱动的智能股票分析工具,能自动抓取行情数据、分析新闻语义并生成结构化报告。该项目采用Python开发,通过GitHub Actions实现全自动运行,支持邮件、企业微信等多渠道推送。核心功能包括AI决策仪表盘、多数据源整合和零成本部署方案,特别适合需要自动化投研辅助的个人投资者。项目强调其仅为分析工具而非投资建议,提醒用户注意AI模型的潜在误差。该工具通过智能化处理重复工作,帮助投资者提升决策效率,成为量化投资

陈奕昆的博客 1526

为UILabel添加弹出UIMenuController功能

现在很多App,类似于新浪博客、QQ空间等都支持按住文字,然后弹出一个菜单让你可以选择复制、粘帖等功能。如下图所示 我们都知道这是通过UIMenuController来实现的,而文字的显示一般是通过UILabel来实现的,但是默认情况下UILabel并不支持UIMenuController。不过我们可以给它添加这么一个功能,下面看看具体如何做的。 UIMenuController须知

sheng_bin的博客 1454

YOLO26改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLO26-T !!! 最新的发文热点

模块是模型中的一个重要组成部分,其主要作用是在模型的初始阶段对输入图像进行处理,方便后续的特征提取和目标检测。以下是对。

Limiiiing的博客 901

怎么使下拉菜单选项控制Label显示内容

求助!!如何使下拉菜单选项控制Label显示内容 初学Qt,现在使用的是Windows上的Qt Creator; 我在.ui中放置了一个pushbutton,利用go to slot添加菜单,使得按下pushbutton显示下拉菜单含两个action,这部分代码如下,又放置一个label,现想达到点击pushbutton下的某个action改变label的显示内容的效果,求高手指点!!!

king16304的博客 1780

SAP自动化-ME51N批量创建采购申请

2、需要管理员授权RZ11脚本录制回放功能。1、仅限于正对SAP日常工作的批量处理。3、数据模板按实际需求更新。物料编码,工厂,数量。

小九啥也不会 530

ESP32-C3入门教程 环境篇②——Windows开发环境准备

文章目录一、注意事项二、下载ESP-IDF工具安装器三、安装内容四、详细安装步骤报错处理 一、注意事项 请注意 ESP-IDF 和 ESP-IDF 工具的安装路径不能超过 90 个字符,安装路径过长可能会导致构建失败。 Python 或 ESP-IDF 的安装路径中一定不能包含空格或括号。 除非操作系统配置为支持 Unicode UTF-8,否则 Python 或 ESP-IDF 的安装路径中也不能包括特殊字符(非 ASCII 码字符、中文字符) 二、下载ESP-IDF工具安装器 ESP-IDF Win

5244

(转)UIMenuController的使用,对UILabel拷贝以及定制菜单

UIMenuController的使用,对UILabel拷贝以及定制菜单 1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES 2. Menu所处的View必须实现 – (BOOL)canPerformAction:withSender, 并根据需求返回YES或NO 3. 使Menu所处的View成为First Respo...

weixin_30369087的博客 74

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

UIMenuController的使用,对UILabel拷贝以及定制菜单 .

1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES 2. Menu所处的View必须实现 – (BOOL)canPerformAction:withSender, 并根据需求返回YES或NO 3. 使Menu所处的View成为First Responder (becomeFirstResponder) 4. 定位Menu ...

weixin_30558305的博客 67

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 检验输入框为空以及输入参数只有空格的判断
下一篇: iOS7之后JavaScript与Objective-C之间的通信
kintan哥
博客等级 码龄12年 11粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值