Objective c UIButton阻止ControlState的操作
我得到了一个UIButton,它对两个不同的控制事件有两个操作:Objective c UIButton阻止ControlState的操作,objective-c,events,Objective C,Events,我得到了一个UIButton,它对两个不同的控制事件有两个操作:UIControlEventTouchDown和UIControlEventTouchUpInside 如果UIControlEventTouchUpInside触发的操作检测到需要,是否可以“阻止”绑定到UIControlEventTouchUpInside的操作 我无法更改属于UIControlEventTouchUpInside-操作的代码,因为它是私有框架的一部分,所以我必须找到另一种方法来帮助自己…使UIControlEv
UIControlEventTouchDown
和UIControlEventTouchUpInside
如果UIControlEventTouchUpInside
触发的操作检测到需要,是否可以“阻止”绑定到UIControlEventTouchUpInside
的操作
我无法更改属于
UIControlEventTouchUpInside
-操作的代码,因为它是私有框架的一部分,所以我必须找到另一种方法来帮助自己…使UIControlEventTouchUpInside
事件依赖于布尔变量(在if语句中)。不管你怎么被通知
uicontrol事件触地触发的操作检测到需要此操作
使用此通知设置变量。在
UIControlEventTouchDown的操作中
如果希望不触发uicontrolEventOutChupInSide
的事件,可以在按钮上为该事件设置不同的(可能为空)操作,或者仅删除该操作。按住选择器引用,或者只知道它通常应触发的其他操作的方法名称,如果希望触发,请重置它:
if ( buttonUsedDownAction )
{
[button removeTarget:(self?) action:@selector(yourPrivateFunction) forControlEvents:UIControlEventTouchUpInside];
}
else
{
if ( [button actionsForTarget:(self?) forControlEvent:UIControlEventTouchUpInside].length == 0 )
{
[button addTarget:(self?) action:@selector(yourPrivateFunction) forControlEvents:UIControlEventTouchUpInside];
}
}
我把
(self?
作为目标,因为我不确定self是否是内部动作的接受者,但你应该明白这一点+1但正如我的问题中提到的:我不能更改属于UIControlEventTouchDown动作的代码,因为它是私有框架的一部分,所以我必须找到另一种方法来帮助我自己…我确实看到了,但我认为必须以某种方式通知您-否则您的目标在逻辑上似乎不可能。因此您需要知道UIControlEventTouchDown
操作是否真的触发了什么,而根本无法修改该操作的代码?听起来我不可能完全控制UIControlEventTouchDown
操作,我想知道如果UIControlEventTouchDown
操作检测到提交的表单有问题,是否有办法防止UIButton触发绑定到它的其他操作。你说你不能更改代码,现在你是说你有完全的控制权?该死,抱歉搞混了。因此,如果您完全控制UIControlEventTouchDown
操作,而不是私有框架内的UIControlEventTouchUpInside
操作…