如何让Digital Crown重新与watchOS 4配合使用

时间:2017-09-24 10:10:21

标签: ios swift watchkit apple-watch watch-os-4

我有一个通过设置

来使用数字皇冠的watchkit应用程序
crownSequencer.delegate = self
crownSequencer.focus()

在我的接口控制器的唤醒方法中实现:

class InterfaceController: WKInterfaceController, WKCrownDelegate 

在watchOS 3中,我的委托方法执行得很好:

// called when the crown rotates, rotationalDelta is the change since the last call (sign indicates direction).
func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) {

    // do something important here...
}

升级到watchos4后,此功能会中断。 简单的重新编译并转换为swift 4并没有帮助。

1 个答案:

答案 0 :(得分:2)

我可以通过简单地将crown序器代码移动到我的接口控制器的willActivate方法来解决这个问题:

override func willActivate() {
    ...

    crownSequencer.delegate = self
    crownSequencer.focus()
}

在我看来,如果你过早地设置焦点,那些东西会偷走watchOS 4中的焦点(也许是与我正在使用的spritekit相关的东西?)。

希望这为其他人节省一些时间!