Fixes for setInteractionDelegate

See #1264 for original issue.
Doing this inside the render function seems a bit odd to me, why check it every frame? Could it not just be done once on startup?