在 IOS 中以编程方式设置动作侦听器
Posted
技术标签:
【中文标题】在 IOS 中以编程方式设置动作侦听器【英文标题】:Set Action Listener Programmatically in IOS 【发布时间】:2012-12-02 11:47:49 【问题描述】:您好,我以编程方式创建了一个按钮。我将此按钮添加到导航栏。现在我想给它添加一个 Touch Up Inside 动作监听器。我该怎么做?谢谢。
【问题讨论】:
【参考方案1】:UIButton 是 UIControl 的子类。
创建按钮后,您需要做的就是设置按钮的目标和操作。即
// Create your button:
UIButton *button = // However you create your button
// Set the target, action and event for the button
[button addTarget:// the object that implements the action method, or nil if you want it to propagate up the responder chain.
action:// A selector for the method
forControlEvents:UIControlEventTouchUpInside];
【讨论】:
【参考方案2】:由于您已将它们添加到导航栏,因此略有不同,但基本相同。您将在创建按钮的同时添加侦听器/处理程序。在这里,我使用以下命令将 <<
和 >>
添加到导航栏:
UIBarButtonItem *nextButton = [[UIBarButtonItem alloc] initWithTitle:@">>" style:UIBarButtonItemStylePlain target:self action:@selector(navNextButtonPressed)];
UIBarButtonItem *prevButton = [[UIBarButtonItem alloc] initWithTitle:@"<<" style:UIBarButtonItemStylePlain target:self action:@selector(navPrevButtonPressed)];
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:nextButton, prevButton, nil];
然后像往常一样创建你的处理程序:
#pragma mark - button handling
-(void)navNextButtonPressed
NSLog(@"Next pressed");
-(void)navPrevButtonPressed
NSLog(@"Prev pressed");
【讨论】:
以上是关于在 IOS 中以编程方式设置动作侦听器的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 中以编程方式创建的多个文本视图的单个 onclick 侦听器
以编程方式在音频元素上设置当前 Date 属性会导致事件侦听器无限期触发