Hai 2 strade per intecettare il touch. La prima è quella di subclassare la tua view e fare l' override dei betodi sul touch, ma mi sembra una via eccessiva per il tuo caso. Il metodo che potresti provare è quello di usare un gesture recognizer sulla tua view, in questo modo:
Nel viewDidLoad del tuo controller:
UITapGestureRecognizer *touchOnView = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fineText:)] autorelease];
[self.view addGestureRecognizer:touchOnView];
e sempre nel controller avrai il tuo ibaction:
- (IBAction)finetext:(id)sender
{
[textfield resignFirstResponder];
}
Questo è in linea di massima il funzionamento. Tieni presente che è buona norma chiamare, quando ha finito, il metodo removeGestureRecognizer sulla view. Per farlo però ti occorre avere il tapGestureRecognizer come attributo di classe (come la textfield), in modo da mantenerne il riferimento. In teoria con l' autorelease se non erro dovrebbe farlo da solo quando la view viene rilasciata, però se lo fai tu sei più sicuro.