Each of the gettext, gettextdialog and gettextokcancel statements requires the user to click in the data entry box before typing a value. They would be much more user-friendly if the cursor was already positioned there.
Furthermore, the latter two statements require the user to define a dummy initial value for the value being sought. For instance, this code:
local ID
gettextokcancel "Enter member ID:",ID
results in the error message, “Contents of variable [ID] have not been defined.”
and you could insert some default value.
Yes, it would be easier if the input box were active. I seem to remember this issue was identified long ago for Gettext and Jim revised it so the input box is active.
Better yet, you could use the procedure that Gary Y developed which uses the AlertSheet. I have a custom statement that uses it, which you or others are welcome to have. Here’s a screen shot of what it looks like.
I looked at Bitbucket, where this issue was reported by me for Gettext (Issue #579). It arose apparently with the release of OS 10.12. From Jim’s earlier comments, the problem arose due to a change by Apple in the OS. I would not plan on this being fixed; it may or may not be. Which is one reason I stopped using it altogether and use the Gary Y’s method of using the AlertSheet, where the input box is highlighted and active as soon as the procedure is invoked.
The other advantage of the alert sheet input is that you may switch to other windows while the alert sheet is being displayed. With the Gettext and its cousins, you must acknowledge the gettext box before doing anything else.