Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: None  |  size: 1.54 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Call a function as soon as uitextfiled looses focus in iOS
  2. // Dismiss Keyboard
  3.  
  4. - (void)touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event {
  5.     for (UIView* view in self.view.subviews) {
  6.         if ([view isKindOfClass:[UITextField class]])
  7.         {
  8.             [view resignFirstResponder];
  9.             [self validationForNoOfPassengers];
  10.         }
  11.  
  12.     }
  13. }
  14.        
  15. void
  16. do_something(void)
  17. {
  18.     return;
  19. }
  20.  
  21. /* ... */
  22.  
  23. - (void)textFieldDidEndEditing:(UITextField *)textField
  24. {
  25.     do_something();
  26. }
  27.        
  28. #import <UIKit/UIKit.h>
  29. @interface MyView : UIView
  30. @property (weak, nonatomic) IBOutlet UITextField *textField;
  31. @end
  32.        
  33. #import "MyView.h"
  34. @implementation MyView
  35. @synthesize textField;
  36. - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
  37. {
  38.     UIView *hitView = [super hitTest:point withEvent:event];
  39.     return (hitView != self.textField
  40.         && self.textField.isFirstResponder
  41.         && ![self.textField resignFirstResponder])
  42.         ? nil : hitView;
  43. }
  44. @end
  45.        
  46. #import "MyView.h"
  47.  
  48. @protocol MyViewFirstResponderProtocol
  49. // Have to declare the message so the compiler will allow it.
  50. - (UIResponder *)firstResponder;
  51. @end
  52.  
  53. @implementation MyView
  54. @synthesize textField;
  55. - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
  56. {
  57.     NSLog(@"hitTest for event %@", event);
  58.     UIView *hitView = [super hitTest:point withEvent:event];
  59.     UIResponder *firstResponder = [(id)self.window firstResponder];
  60.     return (firstResponder
  61.         && hitView != firstResponder
  62.         && ![firstResponder resignFirstResponder])
  63.         ? nil : hitView;
  64. }
  65. @end