关于UIMenuController的使用 弹出菜单UIMenuItem

本文介绍了如何使用UIMenuController在iOS中创建自定义菜单,包括在UITableViewCell中显示系统菜单以及如何添加和显示自定义菜单项。通过设置canBecomeFirstResponder、canPerformAction和becomeFirstResponder等方法,实现菜单的正确显示和功能响应。
摘要由CSDN通过智能技术生成

今天终于搞明白了UIMenuController显示的相关内容,把源代码分享给大家!

当苹果在 iOS 3.0 中增加了剪切、复制和粘贴功能时,它同时为开发者提供了 UIMenuController 组件用来定制该弹出菜单,但不幸的是,最开始的实现要很麻烦:

  1. 附加在菜单的视图的 canBecomeFirstResponser 必须返回 YES,这意味着必须子类化。例如最常用的显示元素 UITableViewCell 和 UILabel 默认返回的是 NO
  2. UILongPressGestureRecognizer 直到 iOS 3.2 才提供, which means that the long press to initiate the menu display had to be implemented via touchesBegan:withEvent:touchesMoved:withEvent:, and touchesEnded:withEvent:. Every custom long press recognizer might use a different delay constant, which could easily confuse users who are used to another app's implementation.

而最新的 iOS 使用两种基本方法解决了这个问题,一个是表格单元格,另外一个是定制菜单选项。

指定情景: UITableViewCell on iOS 5

如果你只是想在 UITableViewCell 中使用系统提供的复制粘贴功能(大部分情况是这样),iOS 5.0 有更简单的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- ( BOOL )tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath {
     return YES;
}
 
- ( BOOL )tableView:(UITableView *)tableView canPerformA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值