Cursor Placement in MobileControl

Bob Sneidar bobsneidar at iotecdigital.com
Wed Mar 6 14:06:20 EST 2024


That is damn handy. That could be massaged to work with a Livecode field too. I’m going to work on that. 

Bob S


> On Mar 6, 2024, at 10:13 AM, Ralph DiMola via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> Dan,
> 
> Nice... thanks!
> 
> Ralph DiMola
> IT Director
> Evergreen Information Services
> rdimola at evergreeninfo.net
> 
> -----Original Message-----
> From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf
> Of Dan Friedman via use-livecode
> Sent: Wednesday, March 06, 2024 11:15 AM
> To: How to use LiveCode
> Cc: Dan Friedman
> Subject: Re: Cursor Placement in MobileControl
> 
> Panos,
> 
> Thank you for the suggestion!   That worked out well!   For anyone
> interested, here's the snippet for formatting a phone number as you type in
> a mobile native field control:
> 
> //this assumes that the mobileControl type for Android is "multiline" and
> the mobileSetKeyboardType has been set to "email"
> 
> on inputTextChanged
>  put mobileControlTarget() into pField
>  put mobileControlGet(pField,"text") into pText
> 
>  if pField = "phoneNumber" then
>    put "" into fText
>    put numbersOnly(pText) into pText
> 
>    if char 1 of pText = "1" then
>      put "" into fText
>      mobileControlSet "phoneNumber","text",fText
>      androidGoLastChar "phoneNumber",fText
>      put fText into dataEntered["phone"]
>      exit inputTextChanged
>    end if
> 
>    if the number of chars in pText < 4 then
>      put pText into fText
>      mobileControlSet "phoneNumber","text",fText
>      androidGoLastChar "phoneNumber",fText
>    else
>      if (the number of chars in pText > 3) then
>        put "(" & char 1 to 3 of pText & ")" into char 1 to 3 of fText
>        put " " & char 4 to 6 of pText after fText
>      end if
>      if the number of chars in pText > 6 then
>        put "-" & char 7 to 10 of pText after fText
>      end if
> 
>      mobileControlSet "phoneNumber","text",fText
>      androidGoLastChar "phoneNumber",fText
>    end if
>  end if
> end inputTextChanged
> 
> function numbersOnly pNum
>  //returns only the numbers in pNum
>  put "" into fNum
>  repeat for each char c in pNum
>    if isNumber(c) then
>      put c after fNum
>    end if
>  end repeat
> 
>  return fNum
> end numbersOnly
> 
> on androidGoLastChar mControl,xText
>  if ("Android" is in the platform) then
>    mobileControlSet mControl,"selectedRange",(the number of chars in
> xText+1,0)
>  end if
> end androidGoLastChar
> 
> 
> Thank you!
> 
> Dan Friedman
> CEO, ClearVision Technologies, LLC
> Voice: 909/484-2052
> http://www.clearvisiontech.com
> 
> 
> From: use-livecode <use-livecode-bounces at lists.runrev.com> on behalf of
> panagiotis merakos via use-livecode <use-livecode at lists.runrev.com>
> Date: Tuesday, March 5, 2024 at 9:45 AM
> To: How to use LiveCode <use-livecode at lists.runrev.com>
> Cc: panagiotis merakos <merakosp at gmail.com>
> Subject: Re: Cursor Placement in MobileControl Hello Dan,
> 
> I take it you are formatting the text in inputTextChanged?
> 
> Unfortunately yes, on Android calling
> 
> mobileControlSet "phoneNumber","text", pText
> 
> puts the cursor in the beginning of the text:
> 
> https://quality.livecode.com/show_bug.cgi?id=24055
> 
> RE using the selectedRange with mobile native controls, I think this
> property is supported only on multiline input fields. So I suppose you could
> make the fields to be multiline and give it a try.
> 
> Kind regards,
> Panos
> --
> 
> On Tue, 5 Mar 2024 at 18:53, Dan Friedman via use-livecode <
> use-livecode at lists.runrev.com> wrote:
> 
>> I am trying to create a field on mobile (iOS and Android) that will 
>> format a phone number as your type (client request).  I am able to do 
>> this on iOS as the command: mobileControlSet 
>> "phoneNumber","text",pText puts the cursor AFTER the text so the user 
>> can simply continue typing.  But, on Android, the cursor is placed at the
> beginning of the text after the
>> mobileControlSet command is called.   Is there a way to set the position
> of
>> the cursor on a native mobile text field?
>> 
>> I did notice that the Android Native Field widget has a selectedRange 
>> property.  Can I use this property on a native Android control?  And, 
>> can I set the selectedRange to "16,15" to set the cursor location, not 
>> select text?
>> 
>> Why not just use the Android Native Field widget, you ask?   I will if I
>> have to. but I prefer to use the native control as it is 
>> cross-platform and I don't need to case out for which platform we're 
>> on.  You would need to create the control and hide the widget for iOS 
>> and show the widget for Android.  I'll also have to case out the 
>> setting  and getting of the text as they have different methods.  I'll do
> this if I have to, but I'd rather
>> have a single code set and not have to manage/update separate methods.   I
>> would use the standard LC field, but client wants the standard
>> hold->popupMenu->paste command to work.
>> 
>> Any thoughts or ideas?
>> 
>> -Dan
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your 
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode



More information about the use-livecode mailing list