pickerDidSettle()没有被调用

时间:2016-09-23 13:14:01

标签: swift watchkit apple-watch

在我的一个Watch Extension的界面控制器中,我有几个WKInterfacePicker个元素,我需要知道用户何时选择了一个值。根据{{​​3}},WKInterfaceController应该能够实现具有相应选择器元素作为参数的pickerDidSettle(_:)方法。出于某种原因,当我使用拣货员时,该方法永远不会被调用。这是我实现的基本结构:

override func pickerDidSettle(picker: WKInterfacePicker) {
    // Code inside this block is not called
}

如果我使用@IBAction属性标记该函数并将它们与界面构建器中的选择器元素连接,则实例方法可以正常工作。但是,这显然阻止我分配选择器操作,这些操作接收用户滚动的所有选择器值。

@IBAction
override func pickerDidSettle(picker: WKInterfacePicker) {
    // This function gets called, but blocks other actions
}

我的接口控制器继承自WKInterfaceController并符合两个自定义协议。我该如何实施该方法?

编辑:该问题与WatchKit中可能存在的错误有关,如果没有与控制器的现有@IBAction连接,则不会调用pickerDidSettle(_:)。我认为这是一个错误,因为相关的实例方法pickerDidFocus(_:)pickerDidResignFocus(_:)独立于连接而工作。

1 个答案:

答案 0 :(得分:0)

有时,当Xcode和Simulator之间出现“不同步”时,就会发生此问题。

只需关闭模拟器并清理并重建您的应用程序(通过“产品/清理生成文件夹”)即可重新创建“同步”。

相关问题