UITextView长按弹出UIMenuController,剪切拷贝选择全选粘贴删除
来源:互联网 发布:华为交换机查mac ip 编辑:程序博客网 时间:2024/04/29 02:58
- (BOOL) canBecomeFirstResponder
{
returnYES;
}
- (BOOL) canPerformAction:(SEL)action withSender:(id)sender
{
if ( [UIMenuControllersharedMenuController] ) {
[UIMenuControllersharedMenuController].menuVisible =NO;
}
returnYES;
}
如下:将会全部显示出来:
其中下边这些是可以访问的公开方法
- (void)cut:(nullableid)senderNS_AVAILABLE_IOS(3_0);
- (void)copy:(nullableid)senderNS_AVAILABLE_IOS(3_0);
- (void)paste:(nullableid)senderNS_AVAILABLE_IOS(3_0);
- (void)select:(nullableid)senderNS_AVAILABLE_IOS(3_0);
- (void)selectAll:(nullableid)senderNS_AVAILABLE_IOS(3_0);
- (void)delete:(nullableid)senderNS_AVAILABLE_IOS(3_2);
- (void)makeTextWritingDirectionLeftToRight:(nullableid)senderNS_AVAILABLE_IOS(5_0);
- (void)makeTextWritingDirectionRightToLeft:(nullableid)senderNS_AVAILABLE_IOS(5_0);
现在有个需求如下图:添加一个"添加为模版"第一种代码
代码如下:自定义了一个PHTTextView 继承UITextView 中加入一下代码
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if(action ==@selector(copy:) ||
action ==@selector(selectAll:)||
action ==@selector(cut:)||
action ==@selector(select:)||
action ==@selector(paste:)) {
return[supercanPerformAction:actionwithSender:sender];//
}
returnNO;
}
在使用PHTTextView的controller中添加如下代码
UIMenuItem*menuItem = [[UIMenuItemalloc]initWithTitle:@"添加为模板"action:@selector(addToTemplate:)];
UIMenuController*menu = [UIMenuControllersharedMenuController];
[menusetMenuItems:[NSArrayarrayWithObjects:menuItem,nil]];
实现效果上图那样. 点击"全选"之后 全选按钮 就没有了
第三种代码
把 PHTTextView 中的 -(BOOL)canPerformAction:(SEL)action withSender:(id)sender方法改为第一种代码
让后在viewcontroller中添加了 如下 代码
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if(action ==@selector(addToTemplate:)) {//添加为模板方法
if(self.contentView.selectedRange.length>0) {
returnYES;
}else{
returnNO;
}
return[supercanPerformAction:actionwithSender:sender];
}
效果如下
新建一个UITextField的子类,重写canPerformAction:withSender:方法并返回 NO 即可禁止粘贴:
- 1
- 2
- 3
- 4
- 5
- 6
或者禁止长按弹出UIMenuController菜单,但是这样做的话,想要复制UITextField内容的操作也一起被禁止了:
- UITextView长按弹出UIMenuController,剪切拷贝选择全选粘贴删除
- 长按UITableViewCell弹出UIMenuController
- 长按UITableViewCell弹出UIMenuController
- 复制 粘贴 全选 添加 拷贝 UIMenuController的使用
- ios开发之实现长按UITableViewCell弹出UIMenuController, 实现文字拷贝等操作
- WKWebView 禁用 长按弹出UIMenuController
- 监听EditText的复制、粘贴、全选、剪切、选择等状态
- android EditText 屏蔽长按弹出剪切 复制 全选菜单 的解决办法
- ios开发之实现长按UITableViewCell弹出UIMenuController
- ios开发之实现长按UITableViewCell弹出UIMenuController
- ios开发之实现长按UITableViewCell弹出UIMenuController
- ios开发之实现长按UITableViewCell弹出UIMenuController
- ios开发之实现长按UITableViewCell弹出UIMenuController
- ios开发之实现长按UITableViewCell弹出UIMenuController
- 长按UITableViewCell弹出UIMenuController——颜婧
- iOS webview长按弹出框UIMenuController添加自定义功能
- UITextView中打开或禁用复制,剪切,选择,全选等功能
- WebView长按弹出复制粘贴
- 用C#识别图像中的文字_MODI OCR
- 格式输入与输出详解二:
- Service启动流程
- Android学习 (六) 常见布局之线性布局
- ACM易错地方之一
- UITextView长按弹出UIMenuController,剪切拷贝选择全选粘贴删除
- 读书笔记(5) python
- C++派生类中与基类同名函数的调用问题
- 17. Letter Combinations of a Phone Number
- 15 个 Android 通用流行框架大全(归类)
- 单链表的基本运算
- ~~~初学者之div+css简介~~~
- 【11月11日 】排序算法续--快速排序+彩蛋一
- DB2 system table resource