代码改变世界

常见控件的监听

2015-07-16 10:57  另十  阅读(206)  评论(0编辑  收藏  举报
#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate ,UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *textFlied; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 1.UIButton 直接addTarget UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; // 2.UIScrollView 遵守协议,实现代理方法 UIScrollView *scrollView = nil; scrollView.delegate = self; // 3.UISegmentedControl 直接addTaget UISegmentedControl *s = [[UISegmentedControl alloc] initWithItems:@[@"123",@"234",@"456",@"567"]]; s.selectedSegmentIndex = 0; [s addTarget:self action:@selector(sClick:) forControlEvents:UIControlEventValueChanged]; s.center = CGPointMake(self.view.center.x, 200); [self.view addSubview:s]; // 4.textFlied 1)遵守协议,实现代理方法 2)textField比较特殊,它是继承自UIControl,也可以直接addTarget实现监听 self.textFlied.delegate = self; // [self.textFlied addTarget:self action:@selector(tfEditingDidBegin) forControlEvents:UIControlEventEditingDidBegin];
// [self.textFlied addTarget:self action:@selector(tfEditingDidEnd) forControlEvents:UIControlEventEditingDidEnd];
// [self.textFlied addTarget:self action:@selector(tfEditingChanged:) forControlEvents:UIControlEventEditingChanged]; } - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { // 退出键盘 // [self.textFlied endEditing:YES]; // 辞去第一响应者(退出键盘) // [self.textFlied resignFirstResponder]; [self.view endEditing:YES]; } #pragma mark - textFlied监听方法 - (void)tfEditingDidBegin { NSLog(@"开始编辑"); } - (void)tfEditingDidEnd { NSLog(@"结束编辑"); } - (void)tfEditingChanged:(UITextField *)tf { NSLog(@"%@",tf.text); } #pragma mark - UITextFieldDelegate - (void)textFieldDidBeginEditing:(UITextField *)textField { NSLog(@"开始编辑"); } - (void)textFieldDidEndEditing:(UITextField *)textField { NSLog(@"结束编辑"); } /** * 当textField文字改变就会调用这个方法 * @param string 用户输入的文字 * * @return YES:允许用户输入;NO:禁止用户输入 */ - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSLog(@"shouldChangeCharactersInRange--%@",string); if ([string isEqualToString:@"1"]) { return NO; } return YES; } - (void)btnClick:(UIButton *)btn { } - (void)sClick:(UISegmentedControl *)s { NSLog(@"%ld",s.selectedSegmentIndex); } @end