Curl Global Community
KeyPressの制限 - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: KeyPressの制限 (/showthread.php?tid=624)



KeyPressの制限 - battiruno - 09-12-2012

こんにちわ。

TextFieldなどのコントロールでKeyPressイベントを行っているのですが、

たとえば、TextField(以後TF)に何か入力してEnterを押したとします。

TFの処理内容は、TFの内容チェックと変換、最後にAfterを使って次のフォーカス場所にBecome-activeをしています

設定でEnterの動作はTabと同じ設定にしておりますので次のフォーカスに移動します。



通常ならそうなのですが、

TF1に入力し、Enterを押すところを連打します。

するとTF1→TF2→TF3とフォーカスが移るはずなのですが、その最後のBecome-activeが処理されて

あたかもTF3からTF2へフォーカスが巻き戻ったかのように見えてしまいます。



初めはAfterが悪さしているのかと思いAfterを外し、試験的に処理内にSleepを入れ疑似的に処理を重くして

実験してみたのですが、やはり巻き戻ってしまします。



自分の考えでは、Enterを押した処理中は他のキー操作を受け付けないようにしたいのですが

そのようなことはできるのでしょうか?

もしくは、巻き戻りを解消する方法はありますでしょうか?



RE: KeyPressの制限 - heavybugtracker - 09-18-2012


サンプルがあるでしょうか?どんな処理があって、何に影響されているか、コードがあると分かりやすいと思います。




RE: KeyPressの制限 - battiruno - 09-26-2012

heavybugtracker様

ご返信頂いていたのに返事が遅れてしまい申し訳ありません。

サンプルは用意できなかったのですが、お聞きしたい事が大まかにまとまったので・・・

・methodが完結するまでキー入力を一切受け付けなくしたい。({after 0s do}も含める)

・上記が無理であれば、methodと{after 0s do}の間を限りなくゼロにしたい。

この2点は可能でしょうか?よろしくお願い致します。



RE: KeyPressの制限 - heavybugtracker - 10-02-2012

回答が遅くなり、すみません。。。
シンプルですが、解決できるかもしれませんので、次の方法で試してみたらどうでしょうか?

1. keypress でEnter検出、Enterキーなら
2. {set TF.enabled = false}
 3. {dispatch-events true}
3. 旧TF処理
4. {set TF.enabled = true}


RE: KeyPressの制限 - battiruno - 10-03-2012

heavybugtracker様

ご回答ありがとうございます。

提示して頂いた方法はまだ試した事がないので、組み込んでみたいと思います。

お忙しい中ありがとうございました。

また何かあれば、よろしくお願い致します。