如何在 UITextfield 中禁用 UIMenuController 的复制和定义 UIMenuItems

2023-12-25

我正在实施自定义UIMenuController并试图弄清楚。如何合法禁用“复制”和“定义”UIMenuItemsUIMenuController in UITextfield?文本字段不可编辑。我尝试使用以下方法禁用“复制”:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{
   if (action == @selector(copy:))
    {
        return NO;
    }

    return [super canPerformAction:action withSender:sender];
}


- (IBAction)tapTextViewGesture:(id)sender {

  UIMenuItem *myItem1 = [[UIMenuItem alloc] initWithTitle:@"myItem1" action:@selector(myItem1Pressed:)];
  UIMenuItem *myItem2 = [[UIMenuItem alloc] initWithTitle:@"myItem2" action:@selector(myItem2Pressed:)];
  UIMenuItem *myItem3 = [[UIMenuItem alloc] initWithTitle:@"myItem3" action:@selector(myItem3Pressed:)];

    // Access the application's shared menu
    UIMenuController *menu = [UIMenuController sharedMenuController];

    [menu setMenuItems:[NSArray arrayWithObjects:myItem1,myItem2,myItem3, nil]];

    CGRect menuRect = CGRectMake(20, 50, 200, 0);


    // Show the menu from the cursor's position
    [menu setTargetRect:menuRect inView:self.view];


    [menu setMenuVisible:YES animated:YES];
}

但菜单仍然显示“复制”和“定义”UIMenuItems。我怎样才能禁用它们,只留下我的物品?


最后通过子类化解决了UITextView(为其创建自定义类)并刚刚添加

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{

    if (action == @selector(copy:))
    {
        return NO;
    }

    return NO;
}

我的自定义 TextView 子类的 .m 文件内部。

之后“复制”不再出现,无论有没有[menu update];

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 UITextfield 中禁用 UIMenuController 的复制和定义 UIMenuItems 的相关文章

  • iOS 以编程方式撤销位置服务权限

    有没有一个功能CLLocationManager or UIApplication撤销位置权限类似功能unregisterForRemoteNotifications撤销推送通知权限 The stopUpdatingLocationCLLo
  • 更改“返回”键盘按钮的文本

    如何将 返回 按钮的标准文本更改为其他内容 我希望它是 添加 不幸的是 您可以使用以下命令将 Return 更改为这些预定义标签之一 returnKeyType财产 返回 默认 Go Google Join Next Route Searc
  • UIButton 触摸事件落入底层视图

    我创建了一个小UIView其中包含两个UIButton是 视图响应UITapGesture事件 按钮应该响应TouchUpInside 但是当我点击按钮时 响应者是底层视图 并且点击手势选择器被触发 寻找意见或建议 您可以修改橙色视图中响应
  • RestKit链接器错误

    我一直遵循 RestKit 安装说明 但现在在尝试构建应用程序时出现错误 这是针对 ios iPad 的 我收到 命令 Developer Platforms iPhoneSimulator platform Developer usr b
  • 在 UILongPressGestureRecognizer 上,如何检测哪个对象生成了事件?

    我有几个 UIButton 的视图 我已成功使用 UILongPressGestureRecognizer 实现 并使用以下内容作为选择器 void longPress UILongPressGestureRecognizer gestur
  • 为什么使用自动布局时视图的框架宽度始终为 600 x 600

    我正在制作一个基本的扫雷应用程序 用于快速练习 娱乐 我想让板的尺寸 10 个图块宽 适应任何 iOS 屏幕 为此 我通过获取tileContainer view frame width和 10来设置每个图块的大小 我的问题是 tileCo
  • XCODE:如何从设备获取/验证准确的时间戳

    在没有互联网连接的情况下是否可以获得 NTP 或准确的时间戳 我不能接受 不信任带有 NSDate date 的设备时间戳 因为它可以由用户修改 并且我的应用程序将通过修改系统日期和时间而被黑客攻击 除此之外 是否有任何方法可以检查系统日期
  • 使用 QuartzCore 为 UITextView 创建阴影 [重复]

    这个问题在这里已经有答案了 我使用创建了一个阴影QuartzCore for my UITextView使用以下代码 myTextView layer masksToBounds NO myTextView layer shadowColo
  • NSURLSessionDownloadTask 出现存储几乎已满磁盘警告的问题

    我在使用 NSURLSessionDownloadTask 处理 ios 上的 空间不足 磁盘已满 错误时遇到问题 如果由于应用程序中完成下载而导致磁盘已满 我会接到电话 URLSession 会话 NSURLSession 任务 NSUR
  • 将 NSData 视频文件合并为一个视频文件

    我有一堆视频文件想要合并成一个视频文件 我正在使用 NSMutableData 来完成该任务 NSMutableData concatenatedData NSMutableData alloc init for int i 0 i lt
  • 如何命名一段代码并在不同的方法中调用它?

    我使用 Grand Central Dispatch 方法在队列中执行我的应用程序 我在该队列的计算中决定按钮的框架 我希望我的应用程序重新绘制其屏幕并计算旋转后的新帧 这是我所做的一些伪代码解释 CGFloat a 123 b 24 di
  • PreferredInterfaceOrientationForPresentation 必须返回受支持的界面方向 (iOS 6)

    我的应用程序窗口的根视图控制器是 UINavigationController 的子类 我已将此代码添加到类中 BOOL shouldAutorotate return self topViewController shouldAutoro
  • 如何使用自定义布局跳转到 UICollectionView 中的任何 Cell?

    我的水平 UICollectionView 中有 40 个单元格和一个按钮 当我点击按钮时 我可以从 5 号单元格跳转到 10 号单元格 但是一旦我想要转到另一个单元格 例如从 5 到 25 它不起作用 而是变为 0 code func s
  • 推送通知需要很长时间才能到达

    我在适用于 iOS 和 Android 的 Adob e Air 应用程序中遇到推送通知的奇怪问题 我正在使用 Milkman Games 的 Easy Push ANE 以及 One Signal 服务 问题是通知确实会到达 但有时 随机
  • UIView 内的 UIButton 目标操作

    我有一个习惯UIView我创建了一个UIButton 在该视图中 我有以下代码 func setupViews menuControlButton addTarget self action toggleButton forControlE
  • 如何在 Swift 编程中获得基于导航的模板功能

    我的项目需要一个导航控制器 并且我的应用程序最初有一个社交登录 一旦验证通过 用户将被推送到另一个视图 我在其中显示一个具有 2 个选项卡的选项卡控制器 我不知道如何在 Swift 编程中做到这一点 我已将视图控制器嵌入到导航控制器中 一旦
  • 空 NSDatePicker

    你好 是否可以让 NSDatePicker 代表 nil 对象 类似 或任何其他方式 谢谢 拉杜 简短回答 否 NSDatePicker 只是忽略无效日期和 nil 例如 这不会更新 NSDatePicker 旧值仍然存在 datePick
  • 如何为 Mac OS X 制作可拖动的菜单栏图标

    我正在为我正在开发的应用程序编写菜单栏图标 但是 NSStatusBar 类没有可以通过 cmd 鼠标左键拖动来使图标可拖动的方法 如何使用 Objective C 代码使菜单栏图标可拖动 谢谢 目前您无法使用 NSStatusBar 来完
  • 滚动视图下的iOS swift 4 imageview:双击缩小

    我已经应用了图像视图来通过捏合来放大 缩小 那很容易 当在图像视图上应用双击时 无法检测到选择方法 我使用 Xcode 9 和 swift 4 您能告诉我滚动视图是否应该应用双击手势吗 var previewImage UIImage ni
  • 在 Objective-C 中,逗号用作语句分隔符时有什么作用?

    我正在查看第三方的一些源代码 并且反复看到对我来说新的语法 基本上他们用逗号而不是分号分隔语句 它可以编译并运行 但我不明白它在做什么 看起来是这样 if url url release url nil 有时他们也会在不使用 if 的情况下

随机推荐

  • 高效解析大型 JSON 数组的前四个元素

    我在用Jackson从 json 解析 JSONinputStream如下所示 36 100 The 3n 1 problem 56717 0 1000000000 0 6316 0 0 88834 0 45930 0 46527 5209
  • 如何复制图像?

    我想复制image png form folder1 to folder2 怎么做 folder1 image png folder2 Thanks 尝试这样的事情 var fs require fs var inStr fs create
  • PHP包含html页面字符集问题

    使用下面的代码查询 mysql 数据库后 我生成了一个 html 文件 myFile page htm fh fopen myFile w 或 die 无法打开文件 fwrite fh row 文本 fclose fh 在 mysql 数据
  • 如何运行内存中下载的文件? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 C 加载 EXE 文件并从内存中运行它 https stackoverflow com questions 3553875 load an exe file and run it from me
  • 从 C++ 中查找 python 函数参数

    我正在从 C 调用 python 函数 我想知道是否可以确定参数的数量和这些参数的名称 我已阅读链接如何从 C 语言中查找 Python 函数的参数数量 https stackoverflow com questions 1117164 h
  • 如何从最小最大算法中获取实际移动而不是移动值

    我目前正在为国际象棋编写一个带有 alpha beta 剪枝的极小极大算法 从我见过的所有示例中 极小极大算法将返回一个 int 值 该值表示最佳得分或最佳移动所产生的棋盘状态 我的问题是我们如何返回与分数返回值相关的最佳动作 例如 下面的
  • 如何将 TensorFlow (v. 2) Hub 中预训练的 KerasLayer 与 tfrecords 结合起来?

    我有一个包含 23 个类的 tfrecord 每个类有 35 张图像 总共 805 张 我当前的 tfrecord 读取函数是 def read tfrecord serialized example feature description
  • knockoutjs 检查绑定

    我遇到了问题checked绑定 单击复选框不会更新可见状态 尽管 dependentObservable 指示值已更改 这是 HTML 片段
  • 如何使用标记创建范围滑块并更改填充范围的颜色?

    我已经在某种程度上完成了工作 如下所示 如何实现像这样的范围滑块 slidecontainer width 100 Width of the outside container The slider itself slider webkit
  • 如何创建一个包含每个项目复选框的组合框?

    对 tkinter 和 python 相当陌生 我想知道如何实现一个像这样的按钮 单击按钮下拉列表 所以这是一个组合框 列表的每一行都有一个复选框 最后 如果单击复选框 则运行一个函数 或者 甚至更好 一旦不再删除组合框 就运行一个将项目检
  • 使用 Azure AD 客户端凭据授予流程的 Azure Devops Access

    我已成功通过 Azure AD 进行身份验证并收到访问令牌 我已授予 Azure AD App API 访问 Azure DevOps 的权限 我正在使用 RestSharp Http 客户端进行身份验证 var client new Re
  • 无法将 NumPy 数组转换为张量(不支持的对象类型字典)

    我的方法我认为问题是 history model fit generator train generator epochs epochs steps per epoch train steps verbose 1 callbacks che
  • R 的 UTF-8 编码问题

    尝试解析墨西哥参议院的参议院声明 但在网页的 UTF 8 编码方面遇到问题 这个html清晰可见 library rvest Senate lt html http comunicacion senado gob mx index php
  • neo4j中计算节点深度

    我在 Neo4j 中有这个查询 MATCH sentence Sentence r gt n Word WITH n COUNT r AS c RETURN n c 我的图是一个语言数据库 包含单词及其之间的依赖关系 此查询应返回节点深度
  • 指南针仅在部分运行

    当我尝试通过键入以下内容在命令行上获取我的版本时 compass version 我收到以下错误 Errno ENOENT on line 25 of usr lib ruby vendor ruby compass version rb
  • 使用不同的类型和消息重新引发异常,保留现有信息

    我正在编写一个模块 并希望为它可能引发的异常建立一个统一的异常层次结构 例如 从FooError所有的抽象类foo模块的特定例外 这允许模块的用户捕获这些特定的异常并在需要时明确地处理它们 但是模块引发的许多异常是由于其他一些异常而引发的
  • TypeScript 泛型

    我正在努力解决如何使用 TypeScript 强类型化某些功能 本质上 我有一个函数 它接受 DataProviders 的键 值映射并返回每个数据提供者返回的数据的键 值映射 这是问题的简化版本 interface DataProvide
  • AngularJS 中的动态下拉选择不起作用

    我正在练习 Angular 希望为用户提供从 3 个下拉选择菜单中进行选择的选项 第三个菜单应该是动态的 具体取决于前两个菜单的选择 我的HTML First dropdown menu static
  • 寻找自由港

    我正在用 C 编写一个 FTP 服务器库 因为我需要它 但我找不到任何好的解决方案 我有两个问题 如何IPEndPoint当我这样做时找到一个自由港new IPEndPoint IPAddress Any 0 例如 是否可以从一定范围 例如
  • 如何在 UITextfield 中禁用 UIMenuController 的复制和定义 UIMenuItems

    我正在实施自定义UIMenuController并试图弄清楚 如何合法禁用 复制 和 定义 UIMenuItemsUIMenuController in UITextfield 文本字段不可编辑 我尝试使用以下方法禁用 复制 BOOL ca