覆盖 IOS UIButton buttonPressed
Posted
技术标签:
【中文标题】覆盖 IOS UIButton buttonPressed【英文标题】:Overriding IOS UIButton buttonPressed 【发布时间】:2013-09-11 06:59:24 【问题描述】:我有一个来自 viewDidLoad 的 ViewController.m 文件:
_registerButton = [AuthButton buttonWithType:UIButtonTypeSystem];
[_registerButton setTitle:@"Register" forState:UIControlStateNormal];
_registerButton.frame = CGRectMake(0.0, 0.0, self.screenWidth / 2.0 - 1.0, 60.0);
[_registerButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
...
(IBAction)buttonPressed:(UIButton *)sender
//sentder.titleLabel
[sender setTitle:@"Registers" forState:UIControlStateNormal];
registerButton 是通过属性声明的 AuthButton。如何覆盖 buttonPressed 并将我的 IBAction 代码移动到我的 AuthButton.m 类?对语法感到困惑(objective-c 的新手)。
【问题讨论】:
为此,您必须使用协议。 检查这个:- iosdevelopertips.com/objective-c/… 为什么不将目标声明为您的 AuthButton? smth like: [_registerButton addTarget:_registerButton action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside]; 你的意思是在视图控制器中?我试图让它更 oo 我的意思是你根本不需要 IBAction。 “addTarget:object”对象有一个类将负责处理按钮按下事件。只需设置您需要的目标并在那里实现“buttonPressed”方法。 【参考方案1】:addTarget
属性是您所需要的。在您的示例中,目标是 self
,因此按钮按下事件会在当前对象中查找选择器。
如果你把目标改成AuthButton
的实例,在AuthButton.m
写一个对应的选择器就可以了。
【讨论】:
以上是关于覆盖 IOS UIButton buttonPressed的主要内容,如果未能解决你的问题,请参考以下文章
如何覆盖 Xamarin.IOS UIButton 的 LayoutSublayersOfLayer 行为?
当我覆盖“drawRect”时,UIButton 样式设置被忽略