我有一个通过设置
来使用数字皇冠的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并没有帮助。
答案 0 :(得分:2)
我可以通过简单地将crown序器代码移动到我的接口控制器的willActivate方法来解决这个问题:
override func willActivate() {
...
crownSequencer.delegate = self
crownSequencer.focus()
}
在我看来,如果你过早地设置焦点,那些东西会偷走watchOS 4中的焦点(也许是与我正在使用的spritekit相关的东西?)。
希望这为其他人节省一些时间!