SuperAPI AI 工具集

macos-touch-gestures

编程与开发

查看项目

更新于 11-03 23:41

技能介绍

macos-touch-gestures 是一项面向 Xcode 开发的技能文档,用途是为 macOS AppKit 应用添加或审查直接触摸支持,例如通过 Sidecar 连接的 iPad 触摸屏,同时不影响原有的鼠标和触控板操作。

主要能力:技能按任务组织成多个参考文件,每份文件以“检测模式”开头。覆盖范围包括:输入类型判断(如 NSClickGestureRecognizer、NSPressGestureRecognizer、NSPanGestureRecognizer 的 allowedTouchTypes、buttonMask 等);用 NSGestureRecognizer 替换 mouseDown:、mouseDragged:、mouseUp: 及 nextEvent(matching:) 循环;点击计数与双击行为;文本选择;滚动与按压拖拽的冲突;识别器之间的关系(失败依赖、同时识别等);平移、捏合与旋转等多指手势;上下文菜单;拖拽源;命中测试与目标尺寸;仅悬停触发的界面;以及点击外部关闭弹窗。

使用方式:先按任务注册表中的信号把代码位置匹配到任务;若请求指定了文件或模式,只处理该范围。任务按顺序应用:先输入类型规则,再迁移鼠标跟踪,其余随后。添加识别器前,要检查与它一同被收集的识别器,并明确失败与同时识别关系。动手编辑前需完整阅读当前任务对应的参考文件;若一处代码匹配多个任务,则在首次编辑前读完每个匹配的参考。

适用场景:Swift 与 Objective-C 的 AppKit 代码中的针对性修改,示例以 Swift 为主;SwiftUI 与 Mac Catalyst(UIKit)部分仅在文件已使用对应框架时适用,不得把 AppKit 代码转换为 SwiftUI 或 UIKit。

限制与原则:保持鼠标行为不变,放大的命中区域、更长的按压时长和更宽的移动容差仅用于触摸;不要给框架自带控件(NSButton、NSSlider、表格、滚动视图等)添加识别器;改动选择、焦点、点击次数或拖拽行为前先询问用户;只使用公开 API,不得建议或输出非公开、下划线前缀符号或私有头文件;触摸行为无法在没有触摸设备时验证,需请开发者在带触摸屏的 Mac(Sidecar 即可)上运行指定检查项,并说明哪些未运行。基于其他工具包或引擎(Electron、Qt、Java、游戏引擎、自定义 Metal 视图)的应用不在本技能范围内,但其托管的 AppKit 视图及通用设计指导除外。