2011年3月16日水曜日

Ti.UI.ButtonBarのenabledを設定する


Titanium mobile の ButtonBar ですが、各ボタンのenabledを制御しようとして
以下のコードを試してみましたがうまく行きませんでした。

var operationButtons = [{title:'Back',enabled:false}, {title:'Forward',enabled:false}];
var operationBar = Titanium.UI.createButtonBar({
 labels:operationButtons,
 style:Ti.UI.iPhone.SystemButtonStyle.BAR
});

var operationButtons = [{title:'Back',enabled:false}, {title:'Forward',enabled:false}];
var operationBar = Titanium.UI.createButtonBar({
 labels:operationButtons,
 style:Ti.UI.iPhone.SystemButtonStyle.BAR
});
operationBar.labels = operationButtons; // labelsプロパティを再設定してみる

var operationButtons = [{title:'Back',enabled:false}, {title:'Forward',enabled:false}];
var operationBar = Titanium.UI.createButtonBar({
 labels:operationButtons,
 style:Ti.UI.iPhone.SystemButtonStyle.BAR
});
// windowオープン後にenabledプロパティを変えてみる
window.addEventListener('open', function(e){
 operationButtons[0].enabled = false;
});

格闘した結果、以下のコードだとうまくいきます。

var operationButtons = [{title:'Back',enabled:false}, {title:'Forward',enabled:false}];
var operationBar = Titanium.UI.createButtonBar({
 labels:operationButtons,
 style:Ti.UI.iPhone.SystemButtonStyle.BAR
});

// windowオープン後にlabelsプロパティを再設定してみる
window.addEventListener('open', function(e){
 operationBar.labels = operationButtons;
});

ま、そういうことです。(どういうこと??)