我正在尝试使用 aWKInterfacePicker
从列表中选择一个字符串。截至目前,我正在使用一个IBAction
函数并更新一个存储选择器值的变量。但是,如果我将数字表冠旋转得太快,即使选择器中的选定元素与变量的值不同,变量也不会更新。此外,第一次加载视图时选择的元素,有时与变量的初始值不同(例如,在选择器中选择了 0,但变量的值是 2)。我相信我的IBOutlets
和IBActions
在 IB 中正确连接。这是测试版软件中的错误,还是我使用WKInterfacePicker
不正确?这是代码WKInterfaceController
:
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
@IBOutlet var itemPicker:WKInterfacePicker?
var pickerVal = 0
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
var itemArr = [WKPickerItem]()
for n in 0...5 {
let k = WKPickerItem()
k.title = String(n)
itemArr.append(k)
}
itemPicker?.setItems(itemArr)
itemPicker?.setEnabled(false)
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
itemPicker?.setSelectedItemIndex(0)
itemPicker?.setEnabled(true)
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
@IBAction func itemPickerUpdated(index: Int) {
pickerVal = index
}
}