Cotton on is the present tense of cottoned on.
The third-person singular simple present indicative form of cotton on is cottons on.
The present participle of cotton on is cottoning on.
The past participle of cotton on is cottoned on.