如何以编程方式判断 IBAction 是由代码调用还是由用户操作调用。
例如
我有一个方法,-(IBAction)someMethodWithItsid)sender
我已将其链接到 UISegmentedControl 上的 valueChanged。
可以调用,
- 用户不断变化的分割
- 在代码中设置 selectedIndex
- 调用
[self someMethodWithIts:foo];
有没有办法区分调用是否来自第一种方式?
干杯
山姆
Best Answer-推荐答案 strong>
如果您可以将 nil 作为发送者(这是传统的)传递并使用它来指示它是通过编程方式发送的,那没关系。但是我认为其他任何东西都太脆弱了,你应该像这样分解代码:
- (void)someMethod {
// stuff shared by everyone
}
- (IBAction)someMethodWithItsid)sender {
// stuff specific to IBAction
[self someMethod];
}
如果你真的想要一个发件人,那么你可以这样做:
- (void)someMethodWithItsid)sender triggeredByUserBOOL)isUser {
}
- (IBAction)someMethodWithItsid)sender {
[self someMethodWithIts:sender triggeredByUser:YES];
}
但一般来说,如果您希望 IBAction 不同于编程更改,则不要将编程更改连接到 IBAction。
关于iphone - 如何以编程方式判断 IBAction 是否已被代码或用户操作调用,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/7155423/
|