IOS之监听UITextField的编辑事件

来源:互联网 发布:淘宝客服能学到东西吗 编辑:程序博客网 时间:2024/04/26 12:17

1、如果需要在UIViewController中监听UITextField的编辑事件,可以在视图控制器以下方法进行处理

@protocol UITextFieldDelegate <NSObject>@optional- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.- (void)textFieldDidBeginEditing:(UITextField *)textField;           // became first responder- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;          // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end- (void)textFieldDidEndEditing:(UITextField *)textField;             // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text- (BOOL)textFieldShouldClear:(UITextField *)textField;               // called when clear button pressed. return NO to ignore (no notifications)- (BOOL)textFieldShouldReturn:(UITextField *)textField;              // called when 'return' key pressed. return NO to ignore.@end

2、如果某个类继承UITextField,需要在该类内部实现监听,可以按以下方法处理

- (id)initWithFrame:(CGRect)frame {    self = [super initWithFrame:frame];    if (self)    {        [self addTarget:self action:@selector(onChange:) forControlEvents:UIControlEventEditingDidEnd];// 可在自定义selector处理    }    return self;}typedef NS_OPTIONS(NSUInteger, UIControlEvents) {    UIControlEventTouchDown           = 1 <<  0,      // on all touch downs    UIControlEventTouchDownRepeat     = 1 <<  1,      // on multiple touchdowns (tap count > 1)    UIControlEventTouchDragInside     = 1 <<  2,    UIControlEventTouchDragOutside    = 1 <<  3,    UIControlEventTouchDragEnter      = 1 <<  4,    UIControlEventTouchDragExit       = 1 <<  5,    UIControlEventTouchUpInside       = 1 <<  6,    UIControlEventTouchUpOutside      = 1 <<  7,    UIControlEventTouchCancel         = 1 <<  8,    UIControlEventValueChanged        = 1 << 12,     // sliders, etc.    UIControlEventEditingDidBegin     = 1 << 16,     // UITextField    UIControlEventEditingChanged      = 1 << 17,    UIControlEventEditingDidEnd       = 1 << 18,    UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing</span></strong>    UIControlEventAllTouchEvents      = 0x00000FFF,  // for touch events    UIControlEventAllEditingEvents    = 0x000F0000,  // for UITextField    UIControlEventApplicationReserved = 0x0F000000,  // range available for application use    UIControlEventSystemReserved      = 0xF0000000,  // range reserved for internal framework use    UIControlEventAllEvents           = 0xFFFFFFFF};









0 0
原创粉丝点击