WKInterfacePicker
リストから文字列を選択するために a を使用しようとしています。現在、IBAction
関数を使用して、ピッカーの値を格納する変数を更新しています。ただし、ピッカーで選択した要素が変数の値と異なっていても、デジタル クラウンをすばやく回転させると変数が更新されません。さらに、ビューが最初にロードされたときに選択された要素が、変数の初期値と異なる場合があります (たとえば、ピッカーで 0 が選択されているのに、変数の値が 2 である)。とIB で正しく配線されているIBOutlets
と思います。IBActions
これはベータ版ソフトウェアのバグですか、それとも使い方が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
}
}