button 手动代码添加监听事件

  • (void)createButton
    {
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    myButton.frame = CGRectMake(100, 100, 100, 50);
    [myButton setTitle:@"click me!" forState:UIControlStateNormal];
    SEL eventHandler = @selector(clickHandler);
    [myButton addTarget:self action:eventHandler forControlEvents:UIControlEventTouchUpInside];
    [window addSubview:myButton];
    }

  • (void)clickHandler
    {
    NSLog(@"You clicked button!");
    }

自己翻开发者文档也没有找到,网上一搜果然已经有人预先想到这个问题了。
最关键的一行代码是
[myButton addTarget:self action:eventHandler forControlEvents:UIControlEventTouchUpInside];
此方法在UIControl类的定义里边,一开始我在UIbutton里找,没有找到相关方法,就怀疑是不是在某个父类或者爷爷类里边,果然,我的直觉还是不错的,只不过没想到是UIcontroll类里边,还是愚蠢。
UIControl里边定义了一些有关控制的方法,好多控件继承自它,以后可以多翻翻,说不定有惊喜。

你可能感兴趣的:(button 手动代码添加监听事件)