2

我正在为 Apple Watch 开发一个应用程序,我想使用在用户推入屏幕(而不是点击)的启动事件中演示的操作。你知道这叫什么以及我如何访问它吗?

4

3 回答 3

3

您只能在该操作上显示菜单。您在 WKInterfaceController 上使用 addMenuItem 方法。

于 2014-11-26T23:10:36.340 回答
2

您所指的手势称为Force Touch

可以在第三方应用程序中使用 Force Touch 作为输入法。但是,您无法注册以接收 Force Touch 事件的通知;目前 WatchKit 中没有与 UIGestureRecogniser 等效的东西。

当您的 WatchKit 应用程序的当前屏幕中有一个上下文菜单时,它会在用户启动强制触摸时由操作系统自动激活。您可以在 Apple Watch 模拟器中通过单击并按住鼠标来模拟这一点……即使在没有启用上下文菜单的屏幕上,甚至在启动 Force Touch 时,生成的动画也会清楚地显示出来。

要通过 Interface Builder 使用它,您只需:

  1. 在界面生成器中将菜单拖到相关的 Watch App 场景中。
  2. 通过将菜单项拖动到菜单中,将一到四个菜单项添加到菜单中。
  3. 为这些菜单项设置名称和图像。
  4. 将这些菜单项连接到 WatchKit 扩展中的 IBActions。

或者,您可以通过 WatchKit 扩展程序以编程方式设置和清除菜单项,如WatchKit API 文档中所述。有四个相关的 WKInterfaceController 方法。在斯威夫特:

func addMenuItemWithItemIcon(_ itemIcon: WKMenuItemIcon,
                   title title: String,
                  action action: Selector)

func addMenuItemWithImageNamed(_ imageName: String,
                     title title: String,
                    action action: Selector)

func addMenuItemWithImage(_ image: UIImage,
                title title: String,
               action action: Selector)

func clearAllMenuItems()

在 Objective-C 中:

- (void)addMenuItemWithItemIcon:(WKMenuItemIcon)itemIcon
                      title:(NSString *)title
                     action:(SEL)action

- (void)addMenuItemWithImageNamed:(NSString *)imageName
                        title:(NSString *)title
                       action:(SEL)action

- (void)addMenuItemWithImage:(UIImage *)image
                   title:(NSString *)title
                  action:(SEL)action

- (void)clearAllMenuItems

完整信息在用于在 WatchKit 中配置上下文菜单的 API 文档中。

第一次创建这些菜单时,尤其是在 Interface Builder 中创建时,您可能会觉得您一定错过了一步,因为您不必将菜单连接到相当于强制触摸手势识别器的东西,但是当您尝试时,您会发现它有效。即使在 2015 年晚些时候我们有能力为 Watch 制作原生应用程序之后,这很可能仍然是第三方开发人员必须强制触摸的唯一访问权限。

于 2015-01-12T17:50:18.493 回答
0

它被称为上下文菜单。您可以使用 addMenuItem 或在情节提要中添加项目附带的菜单,然后添加其他项目。

于 2014-12-12T23:58:44.960 回答