首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WKCrownDelegate似乎没有使用Xcode 9通用汽车

WKCrownDelegate似乎没有使用Xcode 9通用汽车
EN

Stack Overflow用户
提问于 2017-09-16 01:50:29
回答 2查看 871关注 0票数 5

我尝试了以下针对iOS 10.0/Watch OS3.0和iOS 11.0/Watch OS4.0的代码,并在模拟器和我的Watch OS 4设备上进行了测试。似乎没有什么会触发crownDidRotate委托方法。

简单的接口,有一个标签连接到插座。我知道它是连接的,因为我更改了awake方法中的文本。当我旋转皇冠时,在委托方法中中断永不停止。

有什么想法吗?

代码语言:javascript
复制
import Foundation
import WatchKit
class InterfaceController: WKInterfaceController, WKCrownDelegate {
    var value = 1
    @IBOutlet var label: WKInterfaceLabel!
    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
        label.setText("Yeah?")
        crownSequencer.delegate = self
        crownSequencer.focus()
    }
    func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) {
        label.setText("Rotational: \(rotationalDelta)")
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-24 23:08:17

我也有过同样的经历。作为一个黑客,我在crownSequencer.focus()中添加了对willActivate()的另一个调用,现在我看到了一些事件。(xcode 9.0 gm,ios 11.0 gm,watchos 4.0 gm)

票数 5
EN

Stack Overflow用户

发布于 2019-01-05 16:06:14

在crownSequencer.focus()中添加willActivate()对我在Xcode10中没有帮助。您不必在willActivate()或willActivate()中调用(),而是在didAppear()中调用。因此,您需要添加以下几行:

代码语言:javascript
复制
override func didAppear() {
    super.didAppear()
    crownSequencer.focus()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46249328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档