Hi,
IMHO solution 2 is not the best because the user has to look below in the dialog to edit the text.
I think solution 1 is the easiest and more convenient, you can simply call c4d.gui.InputDialog()
to get the text.
If you want the input dialog to be shown at the text's location in the user area then you can implement a GeDialog
.