UITextView定制弹出菜单

本文介绍如何通过自定义UITextView子类来屏蔽系统默认的上下文菜单,并展示如何添加自定义菜单项以实现特定功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    需求:UITextView选中文字之后,需要定制一些功能,屏蔽系统的某些功能。

自定义一个UITextView的子类YQTextView #####屏蔽系统菜单栏#####

#import "YQTextView.h"

@implementation YQTextView

#pragma mark - 选中文字后是否能够弹出菜单
- (BOOL)canBecameFirstResponder {
    return YES;
}

#pragma mark - 选中文字后的系统菜单响应的选项
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    if (action == @selector(copy:)) {
        return YES;
    } else if (action == @selector(selectAll:)) {
        return YES;
    }
    return NO;
}

@end
复制代码

#####定制弹出菜单栏##### 在有需求的ViewController的viewDidLoad方法中添加如下方法,并增加实现方法(若没有定义实现方法,那么这功能菜单是不会显示的)

- (void)viewDidLoad {
    [super viewDidLoad];

    UIMenuItem *menuOneItem = [[UIMenuItem alloc] initWithTitle:@"菜单一" action:@selector(oneAction:)];
    UIMenuItem *menuTwoItem = [[UIMenuItem alloc] initWithTitle:@"菜单二" action:@selector(twoAction:)];
    [UIMenuController sharedMenuController].menuItems = @[menuOneItem, menuTwoItem];
}
#pragma mark - 菜单按钮的实现方法
- (void)oneAction:(id)sender {
    //对应的功能实现体
}

- (void)twoAction:(id)sender {
    //对应的功能实现体
}

复制代码

效果图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值