Dialer (2)

 Dialerを某掲示板で紹介したときに、2点指摘をいただいた。そのうちの一つが、Dialerを使ってダイヤルしても、「+」記号で始まる電話番号を使ってダイヤルしてしまう、というものだった。作者も同じ機種を使っていたのでそんなことはないと分かっているのだが、指摘をいただいた以上、調べる必要がある。どう操作しても同じ状況を再現できないので、ユーザビリティーの問題だろうと見当をつけた。
 Dialerは2番目のTextFieldに電話番号が入っているときに「Make a call」というコマンドメニューを表示するのだが、携帯電話の方でも、それとは別のコマンドメニューを表示する。下の写真の例では、「Add from Contacts」と「Call」が端末によって自動的に挿入されたコマンドである。

 これらのコマンドメニューはTextFieldのconstraintsがPHONENUMBERの時に自動的に表示される。その時フォーカスが当たっているTextFieldに対して、「Add from Contacts」で電話帳を参照して電話番号を入力し、「Call」でそのTextFieldに入っている電話番号を使ってダイヤルするものである。つまり、1番目のTextFieldにフォーカスが当たっている状態でCallコマンドを実行すると、電話帳から引っ張ってきた「+」記号付きの電話番号でダイヤルしてしまう。


 Dialerのコマンドである「Make a call」の方を使うと、どのTextFieldにフォーカスが当たっていても、必ず2番目のTextFieldに入っている電話番号を利用する。


 電話機が自動的にコマンドを挿入するのは避けられないので、バージョン0.4.1では、「Make a call」コマンドの表示に矢印を付けることで、Dialerのコマンドを見分けやすいように変更した。