v8.1.0
I want to let the user enter either blank or a number. I can’t use the numeric entry field as it doesn’t allow blanks, so I next option is to use a text input limited to numeric characters. Can I do this?
v8.1.0
I want to let the user enter either blank or a number. I can’t use the numeric entry field as it doesn’t allow blanks, so I next option is to use a text input limited to numeric characters. Can I do this?
I don’t know of anything built-in, but you could turn off defer updates and use a property change script similar to here (Limit Characters in a Textbox when Typing).
Scratch what I said, I didn’t see the defer updates there… I’ll give it a go, cheers!
Well… it sort of works. It works technically, but practically it’s deceptive. While the props.text property doesn’t contain non-numerics, the text displayed in the input field itself still does 
Also, this is my change script on the props.text property:
import re
pattern = '[^0-9]' # remove text that matches this pattern
text = currentValue.value
res = re.search(pattern, text)
if res is not None:
text = re.sub(pattern, '', text)
self.props.text = text
re.sub substitutes all non-numeric (all characters that match the pattern) characters for no characters (effectively removing them)
Yeah as soon as I posted I realized I hadn’t read all the way to the bottom. My bad.
Really I could have just used re.sub without search, but I figured it was better not to keep writing to the field every time the user types a character 
I tried your script in a TextField component and it works for me in properties and in display. I tried it in designer and a client. The non-numeric will show up but it disappears almost instantly. This is in a coordinate container I use for test type things. 8.0.10.

And your onChange script is attached to text? I can’t see it in your video.
Yep. You can see that the “ddf” I entered don’t appear in the text in the props, so it must be working in the background, just doesn’t seem to update the display 
I think the problem is that you’re actively setting the text during a value change, and so the back-end schema is correct, but the front-end input is out-of-sync. I’ll look into it.
In the meantime, I found a hacky workaround:
stripped_text.TextField.custom.stripped_text to props.text.TextField.custom.stripped_text which performs your logic.onKeyPress Event to capture Key events for Enter, Tab, and Escape, and you’ll also need to use onBlur to capture the occasional click-out.onKeyPress and onBlur Events should use the following script. desired = self.custom.stripped_text
self.props.text = ''
self.props.text = desired
The NEF does allow blanks. Just set the format to none.