omz:forum

    • Register
    • Login
    • Search
    • Recent
    • Popular

    Welcome!

    This is the community forum for my apps Pythonista and Editorial.

    For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.


    Check multi-keys press

    Pythonista
    viewcontroller keypress objcutil
    4
    42
    5526
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • cvp
      cvp @yaley last edited by cvp

      @yaley why do you set your activeKeys as False in changed?

      1 Reply Last reply Reply Quote 0
      • DOGGY
        DOGGY last edited by DOGGY

        @yaley Yes, sorry, as @cvp and my tries, using pygame module is not possible in Pythonista because Pythonista doesn’t have pygame Stash also cannot

        1 Reply Last reply Reply Quote 0
        • yaley
          yaley last edited by

          @DOGGY It’s ok :)

          1 Reply Last reply Reply Quote 0
          • yaley
            yaley last edited by

            @cvp oops that’s my wrong, but after changing it to True, it’s still not working, everything turns True, let me see the documentation carefully again.

            After the key changed, the activeKey turns True, but then it will forever True, until next keyup

            1 Reply Last reply Reply Quote 1
            • cvp
              cvp @yaley last edited by cvp

              @yaley don't forget that presses is a kind of array with eventually multiple keys thus perhaps not only check [0]

              1 Reply Last reply Reply Quote 0
              • DOGGY
                DOGGY last edited by DOGGY

                @YaleY that would be a hard one…..

                1 Reply Last reply Reply Quote 0
                • yaley
                  yaley last edited by

                  @cvp so what should i do now???? Can you show me the code with successful running?

                  cvp 1 Reply Last reply Reply Quote 0
                  • cvp
                    cvp @yaley last edited by

                    @yaley said

                    Can you show me the code with successful running?

                    Ho no, you are further than me. I only try to think about it.
                    When you press the right arrow, your first key is still pressed?

                    1 Reply Last reply Reply Quote 0
                    • yaley
                      yaley last edited by

                      @cvp yes, but the problem is when the second press joined CustomViewController_pressesChanged_withEvent_() didnt run about it

                      cvp 1 Reply Last reply Reply Quote 1
                      • yaley
                        yaley last edited by

                        @cvp You’re method is correct, just i am stupid, i typed wrongly, i set the variable to True in the pressesEnded def

                        XD

                        1 Reply Last reply Reply Quote 0
                        • cvp
                          cvp @yaley last edited by

                          @yaley right, just tested

                          1 Reply Last reply Reply Quote 0
                          • yaley
                            yaley last edited by

                            Wait no, why??? Why my first test is correct and then the second test is not working?????

                            cvp 1 Reply Last reply Reply Quote 0
                            • cvp
                              cvp @yaley last edited by

                              @yaley for me, changed not called
                              If you change something in a created class, restart Pythonista

                              1 Reply Last reply Reply Quote 0
                              • yaley
                                yaley last edited by yaley

                                @cvp here’s my code, I’ve tried to restart Pythonista

                                def CustomViewController_pressesBegan_withEvent_(_self, _cmd, _presses, event):
                                	global activeKeys
                                	presses = ObjCInstance(_presses).allObjects()
                                	keyCode = presses[0].key().keyCode()
                                	
                                	activeKeys[keyCode] = True
                                	
                                def CustomViewController_pressesEnded_withEvent_(_self, _cmd, _presses, event):
                                	global activeKeys
                                	presses = ObjCInstance(_presses).allObjects()
                                	keyCode = presses[0].key().keyCode()
                                	
                                	activeKeys[keyCode] = False
                                	
                                def CustomViewController_pressesChanged_withEvent_(_self, _cmd, _presses, event):
                                	global activeKeys
                                	presses = ObjCInstance(_presses).allObjects()
                                	keyCode = presses[0].keyCode()
                                	
                                	activeKeys[keyCode] = True
                                
                                cvp 3 Replies Last reply Reply Quote 0
                                • cvp
                                  cvp @yaley last edited by

                                  @yaley you should add some print in each method to check if called

                                  1 Reply Last reply Reply Quote 0
                                  • cvp
                                    cvp @yaley last edited by

                                    @yaley said

                                    keyCode = presses[0].keyCode()

                                    Key() missing in changed

                                    1 Reply Last reply Reply Quote 0
                                    • cvp
                                      cvp @yaley last edited by cvp

                                      @yaley only began is called once with left arrow, second with right arrow

                                      Thus, forget changed, and all is ok because two keys imply 2 calls to began

                                      1 Reply Last reply Reply Quote 0
                                      • yaley
                                        yaley last edited by

                                        @cvp thanks it solved!!!

                                        1 Reply Last reply Reply Quote 0
                                        • yaley
                                          yaley last edited by yaley

                                          @cvp looks like i found the problem, if in the changed def, i set activeKeys[keyCode] = presses[0].key().keyCode() it doesn’t work, but if i set activeKeys[keyCode] = presses[0].keyCode() then it works :)

                                          cvp 1 Reply Last reply Reply Quote 0
                                          • cvp
                                            cvp @yaley last edited by

                                            @yaley sorry, perhaps I (or my eyes) become too old, but I don't see the difference

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Powered by NodeBB Forums | Contributors