How to make field focused in props dialog
Just rename the operator property name to type. Honestly, I don't know why this works, maybe some kind of super secret feature, I don't know. Credit for that idea goes to @p2or: Is there an addon for renaming an object with a keyboard shortcut?



import bpy

class OFPropConfirmOperator(bpy.types.Operator):
    """Generate Custom Output Folders"""
    bl_idname = "of.confirm_dialog"
    bl_label = "Generate Output Folders"

    type = bpy.props.StringProperty(
        default="Base", 
        #options={'SKIP_SAVE'}
        )
    geo = bpy.props.StringProperty(
        default="Geometry", 
        #options={'SKIP_SAVE'}
        )
    tex = bpy.props.StringProperty(
        default="Textures", 
        #options={'SKIP_SAVE'}
        )

    @classmethod
    def poll(cls, context):
        return True

    def execute(self, context):
        #do some stuff here
        return {'FINISHED'}

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self, width=500)

    def draw(self, context):
        row = self.layout
        row.prop(self, "type", text="Base Folder")
        row.prop(self, "geo", text="Geometry Folder")
        row.prop(self, "tex", text="Texture Folder")
        row.separator()

class OFPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_idname = "OF_my_panel"
    bl_label = "OF Tools"
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOLS"
    bl_category = "Tools"

    def draw(self, context):
        layout = self.layout
        layout.operator(OFPropConfirmOperator.bl_idname)

def register():
    bpy.utils.register_class(OFPropConfirmOperator)
    bpy.utils.register_class(OFPanel)

def unregister():
    bpy.utils.unregister_class(OFPanel)
    bpy.utils.unregister_class(OFPropConfirmOperator)

if __name__ == "__main__":
    register()