Its nothing!
And, yes, as you say, the program loops until the string is not blank, and don't take care of "cancel" button control...
This code is a sample, that need some fixes to obtain a correct and "complete" string, that is my priority

I have several plans for the GetiOSMessageBoxValues(), like, for example, to include parameters in the function, may be doing something like this:
iOSMessageBoxValues("Title", "Message", "LabelAtText1$LabelAtText2$LabelAtText3", "TextAtButton1$TextAtButton2$TextAtButton3")
The function, in this way, should "explode" the parameters delimited by the separator "$" and detect the number of controls of each type needed, and show these controls into de alert box at the correct position...
After, we could use something like this:
GetiOSMessageBoxValues("Text", 1) ---> To obtain the text at the index 1
or something like this:
GetiOSMessageBoxValues("Texts") ---> To obtain if it is possible, as the return of the function, a matrix of results with all the values from the textboxes inside the input box...
or something like this:
GetiOSMessageBoxValues("buttons") ---> To obtain the index of the pushed button, or "none" if the user has not ended...
Then we could do something like this (for example):
WHILE BUTTON$ = "none"
SLEEP 500
BUTTON$ = GetiOSMessageBoxValues("button")
WEND
IF BUTTON$ = "1" .... ---> The user has pressed the button for "Cancel" the input...
....
ENDIF
IF BUTTON$ = "0" .... ---> The user has pressed the button for "Send" the input...
MESSAGE$ = GetiOSMessageBoxValues("text")
....
PRINT MESSAGE$, 100, 100
SHOWSCREEN
ENDIF
There could be several ways to do that... but before, the current code should be completed to work fine...
Also may be that Trucidare or Gernot have a complete code that works, and we were redesigning the "wheel"...

Anyway, thanks for your suggestions and interest, I'm sure that someone may have an easy solution to complete the code correctly and we could complete the functions in the better possible way to obtaining all data and events.