如图,在 Rt $\triangle A B C$ 中,$\angle A C B=90^{\circ}$ ,以 $A B$ 为直径作 $\odot O$ ,过点 $C$ 作直线 $C D$ 交 $A B$ 的延长线于点 $D$ ,使 $\angle B C D=\angle A$ .
(1)求证:$C D$ 为 $\odot O$ 的切线;
(2)若 $D E$ 平分 $\angle A D C$ ,且分别交 $A C, B C$ 于点 $E, F$ ,当 $C E=2$ 时,求 $E F$的长.