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.
    • 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
                                        • cvp
                                          cvp @shinya.ta last edited by

                                          @shinya.ta To post here a picture, I use this little script:

                                          import pyimgur,photos,clipboard,os,console
                                          i=photos.pick_image()
                                          if i:
                                          	print(i.format)
                                          	format = 'gif' if (i.format == 'GIF') else 'jpg'
                                          	i.save('img.'+format)
                                          	clipboard.set(pyimgur.Imgur("303d632d723a549").upload_image('img.'+format, title="Uploaded-Image").link)
                                          	console.hud_alert("link copied!")
                                          	os.remove('img.'+format)
                                          

                                          You have to

                                          • run this script
                                          • the program will ask you to pick a picture from your camera roll
                                          • the program sends the picture to imgur site and copy the url in the clipboard
                                          • here, in the forum, you paste this url from the clipboard in a post
                                          • that's all, it takes some seconds
                                          1 Reply Last reply Reply Quote 1
                                          • cvp
                                            cvp @shinya.ta last edited by cvp

                                            @shinya.ta If the 'next emoji' is not displayed on iPhone, it is perhaps a problem of screen width (sorry, I can't test it), you could try to put a shorter title to this button, like

                                            UIBarButtonItem = ObjCClass('UIBarButtonItem').alloc().initWithTitle_style_target_action_('โฉ',0,bb_target,sel('invokeAction:')).autorelease()
                                            

                                            If you parametrized big characters in your iPhone settings, the system does not have sufficient room to display this button

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