Cursor Placement in MobileControl
Dan Friedman
dan at clearvisiontech.com
Wed Mar 6 11:15:03 EST 2024
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
More information about the use-livecode
mailing list