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.


    Keyboard ui button.

    Pythonista
    2
    55
    23687
    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 @shinya.ta last edited by

      @shinya.ta Do you want to say, in my little script using setInputAccessoryView, you want to display emojis not all in one shot but in several parts with a button to get the next set?

      1 Reply Last reply Reply Quote 0
      • cvp
        cvp @shinya.ta last edited by cvp

        @shinya.ta If I correctly understood, try this at the end of your script (if based on mine)

        def nextSet(sender):
        	i_set = sender.i_set + 1
        	if i_set == sender.n_sets:
        		i_set = 0
        	#attach our accessory to the textfield, and textview
        	ww = vv_array[i_set]
        	tvo = tv.objc_instance
        	#print(dir(tvo))
        	tvo.setInputAccessoryView_(ObjCInstance(ww))
        	tvo.reloadInputViews()
        
        #create normal keys
        d = 32
        dd = 4
        emojis = '๐Ÿ˜Š๐Ÿ˜œ๐Ÿ˜ฑ๐Ÿ’ฆโ˜”๏ธ๐Ÿ˜€๐Ÿ˜ƒ๐Ÿ˜„๐Ÿ˜๐Ÿ˜†๐Ÿ˜…๐Ÿ˜‚๐Ÿคฃโ˜บ๏ธ๐Ÿ˜Š๐Ÿ˜‡๐Ÿ™‚๐Ÿ™ƒ๐Ÿ˜‰๐Ÿ˜Œ๐Ÿ˜๐Ÿฅฐ๐Ÿ˜˜๐Ÿ˜—๐Ÿ˜™๐Ÿ˜š๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜๐Ÿ˜œ๐Ÿคช๐Ÿคจ๐Ÿง๐Ÿค“๐Ÿ˜Ž๐Ÿคฉ๐Ÿฅณ๐Ÿ˜๐Ÿ˜’๐Ÿ˜ž๐Ÿ˜”๐Ÿ˜Ÿ๐Ÿ˜•๐Ÿ™โ˜น๏ธ๐Ÿ˜ฃ๐Ÿ˜–๐Ÿ˜ซ๐Ÿ˜ฉ๐Ÿฅบ๐Ÿ˜ข๐Ÿ˜ญ๐Ÿ˜ค๐Ÿ˜ ๐Ÿ˜ก๐Ÿคฌ๐Ÿคฏ๐Ÿ˜ณ๐Ÿฅต๐Ÿฅถ๐Ÿ˜ฑ๐Ÿ˜จ๐Ÿ˜ฐ๐Ÿ˜ฅ๐Ÿ˜“๐Ÿค—๐Ÿค”๐Ÿคญ๐Ÿคซ๐Ÿคฅ๐Ÿ˜ถ๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ฌ๐Ÿ˜ฆ๐Ÿ˜ง๐Ÿ˜ฎ๐Ÿ˜ฒ๐Ÿ˜ด๐Ÿคค๐Ÿ˜ช๐Ÿ˜ต๐Ÿค๐Ÿฅด๐Ÿคข๐Ÿคฎ๐Ÿคง๐Ÿ˜ท๐Ÿค’๐Ÿค•๐Ÿค‘๐Ÿค ๐Ÿ˜ˆ'
        n_sets = 4
        vv_array = []
        for i_set in range(0,n_sets):
        	l = int(len(emojis)/n_sets)
        	i = i_set * l
        	set_emojis = emojis[i:i+l] + 'โฉ'
        	w, h = ui.get_screen_size()	
        	vv = ui.View(name='set'+str(i_set))
        	vv.background_color = 'lightgray'
        	h = 0
        	x = dd
        	y = dd
        	for button_title in set_emojis:
        		b = ui.Button(title=button_title)
        		if button_title == 'โฉ':
        			b_action = nextSet
        			b.i_set = i_set
        			b.n_sets = n_sets
        			b.name = 'nextSet'
        		else:
        			b_action = typeChar
        		b.action=b_action
        		b.frame = (x,y,d,d)
        		b.font = ('.SFUIText', d)
        		if (y+d+dd) > h:
        			h = y + d + dd
        		vv.add_subview(b)
        		x = x + d + dd
        		if (x+d+dd) > w:
        			x = dd
        			y = y + d + dd
        	vv.frame = (0,0,w,h)
        	vv_array.append(vv)
        
        i_set = 0
        nextSet(vv_array[n_sets-1]['nextSet'])	# display 1st set
        
        v.present('sheet')
        tv.selected_range = (0,0)
        tv.begin_editing()
        

        shinya.ta 1 Reply Last reply Reply Quote 0
        • shinya.ta
          shinya.ta @cvp last edited by

          @cvp

          It's a little different from what I was thinking, but that's a good idea.

          b_action = typeChar

          Here is a name error.
          Why?

          cvp 2 Replies Last reply Reply Quote 0
          • cvp
            cvp @shinya.ta last edited by

            @shinya.ta It was the action of my old script

            def typeChar(sender):
            	'''finds active textinput, and types the button's title'''
            	tf=sender.objc_instance.firstResponder()
            	tf.insertText_(sender.title)
            

            But I don't know what your script became....

            1 Reply Last reply Reply Quote 0
            • cvp
              cvp @shinya.ta last edited by cvp

              @shinya.ta And it is only an example of what you could do. You could have any button with the title or image you want to display next set of emojis.

              shinya.ta 2 Replies Last reply Reply Quote 0
              • shinya.ta
                shinya.ta @cvp last edited by

                @cvp

                Dear.cvp

                I'll try it again.

                1 Reply Last reply Reply Quote 0
                • shinya.ta
                  shinya.ta @cvp last edited by

                  @cvp

                  It was successful.

                  I want to use this application vertically, so I hope the display of emoji is less.

                  How can I adjust the number of emoji?

                  cvp 2 Replies Last reply Reply Quote 0
                  • cvp
                    cvp @shinya.ta last edited by cvp

                    @shinya.ta Hello
                    The n_sets sets the number of sets
                    You could set the number of emojis you want per set and then compute the number of sets

                    n_emojis_in_set = 20
                    n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set)
                    

                    1 Reply Last reply Reply Quote 0
                    • cvp
                      cvp @shinya.ta last edited by

                      @shinya.ta please let me know if it is ok and if you want to put the "next set" button at another place

                      shinya.ta 2 Replies Last reply Reply Quote 0
                      • shinya.ta
                        shinya.ta @cvp last edited by

                        @cvp

                        Dear.cvp

                        n_emojis_in_set = 20
                        n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set)
                        

                        Where should I put this code in?
                        I tried to put it in the last line, but there was no change.

                        cvp 1 Reply Last reply Reply Quote 0
                        • shinya.ta
                          shinya.ta @cvp last edited by

                          @cvp

                          It is the best if I can set this emoji to the task bar only by the operation of my wife who is visually impaired.

                          Is Pythonisa possible to set up a button only with buttons, not in the operation of the program?

                          cvp 1 Reply Last reply Reply Quote 0
                          • cvp
                            cvp @shinya.ta last edited by

                            @shinya.ta instead of

                            emojis = '๐Ÿ˜Š๐Ÿ˜œ๐Ÿ˜ฑ๐Ÿ’ฆโ˜”๏ธ๐Ÿ˜€๐Ÿ˜ƒ๐Ÿ˜„๐Ÿ˜๐Ÿ˜†๐Ÿ˜…๐Ÿ˜‚๐Ÿคฃโ˜บ๏ธ๐Ÿ˜Š๐Ÿ˜‡๐Ÿ™‚๐Ÿ™ƒ๐Ÿ˜‰๐Ÿ˜Œ๐Ÿ˜๐Ÿฅฐ๐Ÿ˜˜๐Ÿ˜—๐Ÿ˜™๐Ÿ˜š๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜๐Ÿ˜œ๐Ÿคช๐Ÿคจ๐Ÿง๐Ÿค“๐Ÿ˜Ž๐Ÿคฉ๐Ÿฅณ๐Ÿ˜๐Ÿ˜’๐Ÿ˜ž๐Ÿ˜”๐Ÿ˜Ÿ๐Ÿ˜•๐Ÿ™โ˜น๏ธ๐Ÿ˜ฃ๐Ÿ˜–๐Ÿ˜ซ๐Ÿ˜ฉ๐Ÿฅบ๐Ÿ˜ข๐Ÿ˜ญ๐Ÿ˜ค๐Ÿ˜ ๐Ÿ˜ก๐Ÿคฌ๐Ÿคฏ๐Ÿ˜ณ๐Ÿฅต๐Ÿฅถ๐Ÿ˜ฑ๐Ÿ˜จ๐Ÿ˜ฐ๐Ÿ˜ฅ๐Ÿ˜“๐Ÿค—๐Ÿค”๐Ÿคญ๐Ÿคซ๐Ÿคฅ๐Ÿ˜ถ๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ฌ๐Ÿ˜ฆ๐Ÿ˜ง๐Ÿ˜ฎ๐Ÿ˜ฒ๐Ÿ˜ด๐Ÿคค๐Ÿ˜ช๐Ÿ˜ต๐Ÿค๐Ÿฅด๐Ÿคข๐Ÿคฎ๐Ÿคง๐Ÿ˜ท๐Ÿค’๐Ÿค•๐Ÿค‘๐Ÿค ๐Ÿ˜ˆ'
                            n_sets = 4
                            vv_array = []
                            

                            Do

                            emojis = '๐Ÿ˜Š๐Ÿ˜œ๐Ÿ˜ฑ๐Ÿ’ฆโ˜”๏ธ๐Ÿ˜€๐Ÿ˜ƒ๐Ÿ˜„๐Ÿ˜๐Ÿ˜†๐Ÿ˜…๐Ÿ˜‚๐Ÿคฃโ˜บ๏ธ๐Ÿ˜Š๐Ÿ˜‡๐Ÿ™‚๐Ÿ™ƒ๐Ÿ˜‰๐Ÿ˜Œ๐Ÿ˜๐Ÿฅฐ๐Ÿ˜˜๐Ÿ˜—๐Ÿ˜™๐Ÿ˜š๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜๐Ÿ˜œ๐Ÿคช๐Ÿคจ๐Ÿง๐Ÿค“๐Ÿ˜Ž๐Ÿคฉ๐Ÿฅณ๐Ÿ˜๐Ÿ˜’๐Ÿ˜ž๐Ÿ˜”๐Ÿ˜Ÿ๐Ÿ˜•๐Ÿ™โ˜น๏ธ๐Ÿ˜ฃ๐Ÿ˜–๐Ÿ˜ซ๐Ÿ˜ฉ๐Ÿฅบ๐Ÿ˜ข๐Ÿ˜ญ๐Ÿ˜ค๐Ÿ˜ ๐Ÿ˜ก๐Ÿคฌ๐Ÿคฏ๐Ÿ˜ณ๐Ÿฅต๐Ÿฅถ๐Ÿ˜ฑ๐Ÿ˜จ๐Ÿ˜ฐ๐Ÿ˜ฅ๐Ÿ˜“๐Ÿค—๐Ÿค”๐Ÿคญ๐Ÿคซ๐Ÿคฅ๐Ÿ˜ถ๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ฌ๐Ÿ˜ฆ๐Ÿ˜ง๐Ÿ˜ฎ๐Ÿ˜ฒ๐Ÿ˜ด๐Ÿคค๐Ÿ˜ช๐Ÿ˜ต๐Ÿค๐Ÿฅด๐Ÿคข๐Ÿคฎ๐Ÿคง๐Ÿ˜ท๐Ÿค’๐Ÿค•๐Ÿค‘๐Ÿค ๐Ÿ˜ˆ'
                            n_emojis_in_set = 20
                            n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set)
                            vv_array = []
                            
                            1 Reply Last reply Reply Quote 0
                            • cvp
                              cvp @shinya.ta last edited by cvp

                              @shinya.ta Sorry, I don't understand this

                              It is the best if I can set this emoji to the task bar only by the operation of my wife who is visually impaired.
                              
                              Is Pythonisa possible to set up a button only with buttons, not in the operation of the program?
                              

                              If I correctly understand, you want to ask this "next set of emojis" by a normal button.
                              But where do you want this button?

                              shinya.ta 1 Reply Last reply Reply Quote 0
                              • shinya.ta
                                shinya.ta @cvp last edited by

                                @cvp

                                Sorry for the poor English.

                                It is a button that my wife can set emoji by herself.

                                The location of the button is okay anywhere.

                                cvp 1 Reply Last reply Reply Quote 0
                                • cvp
                                  cvp @shinya.ta last edited by cvp

                                  @shinya.ta Try

                                  #create normal keys
                                  d = 32
                                  dd = 4
                                  emojis = '๐Ÿ˜Š๐Ÿ˜œ๐Ÿ˜ฑ๐Ÿ’ฆโ˜”๏ธ๐Ÿ˜€๐Ÿ˜ƒ๐Ÿ˜„๐Ÿ˜๐Ÿ˜†๐Ÿ˜…๐Ÿ˜‚๐Ÿคฃโ˜บ๏ธ๐Ÿ˜Š๐Ÿ˜‡๐Ÿ™‚๐Ÿ™ƒ๐Ÿ˜‰๐Ÿ˜Œ๐Ÿ˜๐Ÿฅฐ๐Ÿ˜˜๐Ÿ˜—๐Ÿ˜™๐Ÿ˜š๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜๐Ÿ˜œ๐Ÿคช๐Ÿคจ๐Ÿง๐Ÿค“๐Ÿ˜Ž๐Ÿคฉ๐Ÿฅณ๐Ÿ˜๐Ÿ˜’๐Ÿ˜ž๐Ÿ˜”๐Ÿ˜Ÿ๐Ÿ˜•๐Ÿ™โ˜น๏ธ๐Ÿ˜ฃ๐Ÿ˜–๐Ÿ˜ซ๐Ÿ˜ฉ๐Ÿฅบ๐Ÿ˜ข๐Ÿ˜ญ๐Ÿ˜ค๐Ÿ˜ ๐Ÿ˜ก๐Ÿคฌ๐Ÿคฏ๐Ÿ˜ณ๐Ÿฅต๐Ÿฅถ๐Ÿ˜ฑ๐Ÿ˜จ๐Ÿ˜ฐ๐Ÿ˜ฅ๐Ÿ˜“๐Ÿค—๐Ÿค”๐Ÿคญ๐Ÿคซ๐Ÿคฅ๐Ÿ˜ถ๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ฌ๐Ÿ˜ฆ๐Ÿ˜ง๐Ÿ˜ฎ๐Ÿ˜ฒ๐Ÿ˜ด๐Ÿคค๐Ÿ˜ช๐Ÿ˜ต๐Ÿค๐Ÿฅด๐Ÿคข๐Ÿคฎ๐Ÿคง๐Ÿ˜ท๐Ÿค’๐Ÿค•๐Ÿค‘๐Ÿค ๐Ÿ˜ˆ'
                                  n_emojis_in_set = 20
                                  n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set)
                                  vv_array = []
                                  for i_set in range(0,n_sets):
                                  	l = int(len(emojis)/n_sets)
                                  	i = i_set * l
                                  	set_emojis = emojis[i:i+l]
                                  	w, h = ui.get_screen_size()	
                                  	vv = ui.View(name='set'+str(i_set))
                                  	vv.background_color = 'lightgray'
                                  	h = 0
                                  	x = dd
                                  	y = dd
                                  	for button_title in set_emojis:
                                  		b = ui.Button(title=button_title)
                                  		b_action = typeChar
                                  		b.action=b_action
                                  		b.frame = (x,y,d,d)
                                  		b.font = ('.SFUIText', d)
                                  		if (y+d+dd) > h:
                                  			h = y + d + dd
                                  		vv.add_subview(b)
                                  		x = x + d + dd
                                  		if (x+d+dd) > w:
                                  			x = dd
                                  			y = y + d + dd
                                  	vv.frame = (0,0,w,h)
                                  	vv_array.append(vv)
                                  
                                  tv.i_set = 0
                                  tv.n_sets = n_sets
                                  def nextSet(sender):
                                  	tv.i_set = tv.i_set + 1
                                  	if tv.i_set == tv.n_sets:
                                  		tv.i_set = 0
                                  	#attach our accessory to the textfield, and textview
                                  	ww = vv_array[tv.i_set]
                                  	tvo = tv.objc_instance
                                  	#print(dir(tvo))
                                  	tvo.setInputAccessoryView_(ObjCInstance(ww))
                                  	tvo.reloadInputViews()
                                  	
                                  nextSet(vv_array[n_sets-1]['nextSet'])	# display 1st set
                                  
                                  # add a button at right of "typing suggestions", just above the keyboard
                                  bb_target = ui.Button()
                                  bb_target.action = nextSet
                                  UIBarButtonItem = ObjCClass('UIBarButtonItem').alloc().initWithTitle_style_target_action_('Next Emojis',0,bb_target,sel('invokeAction:')).autorelease()
                                  #UIBarButtonItem = ObjCClass('UIBarButtonItem').alloc().initWithImage_style_target_action_(ns(ui.Image.named('emj:Bicycle').with_rendering_mode(ui.RENDERING_MODE_ORIGINAL)),0,bb_target,sel('invokeAction:')).autorelease()
                                  
                                  UIBarButtonItemGroup = ObjCClass('UIBarButtonItemGroup').alloc().initWithBarButtonItems_representativeItem_([UIBarButtonItem],None)
                                  
                                  tvo = tv.objc_instance
                                  tvo.inputAssistantItem().setTrailingBarButtonGroups([UIBarButtonItemGroup])
                                  
                                  v.present('sheet')
                                  tv.selected_range = (0,0)
                                  tv.begin_editing()
                                  

                                  shinya.ta 2 Replies Last reply Reply Quote 0
                                  • shinya.ta
                                    shinya.ta @cvp last edited by

                                    @cvp

                                    Dear.cvp

                                    I didn't have a test because I didn't have time to try it.
                                    I'll take a test on the weekend.

                                    1 Reply Last reply Reply Quote 0
                                    • shinya.ta
                                      shinya.ta @cvp last edited by

                                      @cvp

                                      Dear.cvp

                                      When I tried the program, I got a Syntaxerror. Why is that?

                                      cvp 1 Reply Last reply Reply Quote 0
                                      • cvp
                                        cvp @shinya.ta last edited by

                                        @shinya.ta If the syntax error comes from the last line, I had made a copy/paste error, please check the two last lines versus the edit script above

                                        shinya.ta 2 Replies Last reply Reply Quote 0
                                        • shinya.ta
                                          shinya.ta @cvp last edited by

                                          @cvp

                                          Dear.cvp

                                          I tried it, but iPad can show next emji, but I couldn't display it on iPhone.

                                          1 Reply Last reply Reply Quote 0
                                          • shinya.ta
                                            shinya.ta @cvp last edited by

                                            @cvp

                                            I would like to display multiple windows at the same time and edit the text.

                                            Can I make it with Pythonisa?

                                            I don't know how to send pictures here.
                                            If you see the picture, I think you can see the image.

                                            cvp 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Powered by NodeBB Forums | Contributors