さて、前回作成したアプリはそのままでもいいのですがもう少しアプリらしくしたいと思います。
アプリの起動時に、テキストフィールドにフォーカスを当てる
main.js の方に以下の項目を追記します。
[cc lang=”javascript” tab_size=”2″ lines=”30″ width=”512″]
// 起動時にフォーカスを与える
// http://developer.appcelerator.com/question/17351/start-with-focus-on-a-textarea
win.addEventListener(“open”, function(event, type) {
ta1.focus();
});
win.open({
modal:true,
modalStyle: Ti.UI.iPhone.MODAL_PRESENTATION_FORMSHEET
});
[/cc]
このaddEventListenner()を利用するのがよいみたいです。
まだきちんと動きとか分かっていないでですがフォーラムに出ていましたので使わせてもらいます。
テキストの文字数をNavbarに表示する
main.js に以下の小目を追記します。
[cc lang=”javascript” tab_size=”2″ lines=”30″ width=”512″]
var label1 = Titanium.UI.createLabel({
color:’#fff’,
text:’0′,
font:{fontSize:16,fontFamily:’Helvetica Neue’},
textAlign:’center’,
width: 64
});
Ti.UI.currentWindow.rightNavButton = label1;
[/cc]
NavBarですがButtonの箇所になんでもおけるみたいですね。Button以外にもこの例のように label でも可能です。
文字を入力する都度、文字数を変化させる
[cc lang=”javascript” tab_size=”2″ lines=”30″ width=”512″]
ta1.addEventListener(‘change’,function(e){
label1.text = jstrlen(ta1.value);
Ti.UI.currentWindow.rightNavButton = label1;
});
[/cc]
さて、文字の変化をみて値を更新するためにはこのようにして ta1の’change’イベントで制御をします。文字数を疲労感数はここでは jstrlen() で行っています。
[cc lang=”javascript” tab_size=”2″ lines=”30″ width=”512″]
// 文字をバイトで数えるための関数
// http://www.tohoho-web.com/js/string.htm
function jstrlen(str, len, i) {
len = 0;
str = escape(str);
for (i = 0; i < str.length; i++, len++) {
if (str.charAt(i) == "%") {
if (str.charAt(++i) == "u") {
i += 3;
len++;
}
i++;
}
}
return len;
}
[/cc]
でも実際にはこの関数では半角の文字も全角の文字も2文字で計算してしまいます。なのであまり意味が・・・後で修正することにしましょう。
その他の修正
上記以外にも、「ひらがな→半角カナ」ボタンを追加。また起動時にクリップボードに入っているものをテキストエリアの中に表示させるなどの修正を加えています。他にも少しづつあるかとお思いますがこれで大分使えるようになってきたような気がします。
次回以降で、アプリの登録やiPhoneへの転送などをしてみたいと思います。