在我的一个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(_:)
独立于连接而工作。
答案 0 :(得分:0)
有时,当Xcode和Simulator之间出现“不同步”时,就会发生此问题。
只需关闭模拟器并清理并重建您的应用程序(通过“产品/清理生成文件夹”)即可重新创建“同步”。