Cursor Placement in MobileControl

Mark Smith marksmithhfx at gmail.com
Wed Mar 6 15:37:56 EST 2024


Very useful to know. Thanks Dan

Mark

Sent from my iPhone

> On Mar 6, 2024, at 7:13 PM, Mike Kerner via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> it would be nice to have a universal field widget, and be able to have this
> sort of behavior be part of it...
> 
>> On Wed, Mar 6, 2024 at 2:07 PM Bob Sneidar via use-livecode <
>> use-livecode at lists.runrev.com> wrote:
>> 
>> 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
>> 
>> _______________________________________________
>> 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
>> 
> 
> 
> -- 
> On the first day, God created the heavens and the Earth
> On the second day, God created the oceans.
> On the third day, God put the animals on hold for a few hours,
>   and did a little diving.
> And God said, "This is good."
> _______________________________________________
> 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