iOS16适配指南之UIEditMenuInteraction

  • iOS 16 中新增的菜单交互,用于取代 UIMenuController 与 UIMenuItem。
  • 目前 UITextField 与 UITextView 已经默认支持。
//  Created by YungFan
import UIKit

class ViewController: UIViewController {
    lazy var textField: UITextField = {
        let textField = UITextField(frame: CGRect(x: 0, y: 500, width: 300, height: 44))
        textField.borderStyle = .roundedRect
        textField.delegate = self
        return textField
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(textField)
    }
}

// MARK: - UITextFieldDelegate
extension ViewController: UITextFieldDelegate {
    // MARK: 通过代理方法添加交互的菜单
    func textField(_ textField: UITextField,
                   editMenuForCharactersIn range: NSRange,
                   suggestedActions: [UIMenuElement]) -> UIMenu? {
        let favorite = UIAction(title: "Favorite") { _ in
            print("favorite")
        }
        let share = UIAction(title: "Share") { _ in
            print("share")
        }
        let delete = UIAction(title: "Delete", attributes: [.destructive]) { _ in
            print("delete")
        }
        return UIMenu(children: [favorite, share, delete])
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS 16 真机调试时需要在设备的设置 —> 隐私与安全 —> 开发者模式 中打开开发者模式。 新增 UICal...
    YungFan阅读 13,412评论 17 23
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,978评论 1 180
  • 内容来自于 iOS文档中 About Text Handling in iOS 部分 ios平台提供了显示及编辑文...
    纵横而乐阅读 11,862评论 2 21
  • UIResponder主要是负责响应我们屏幕上各种事件、并维护一个响应链的机制。日常工作中我们主要用到:响应链及其...
    kirito_song阅读 5,763评论 1 17
  • UIKit reference introduction UIAcceleration: 加速计类: 加速度实为U...
    秀才不才阅读 3,813评论 0 0

友情链接更多精彩内容