Separate Delegate from TextField to avoid conflict with BlocksKit