Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UIButton阻止ControlState的操作_Objective C_Events - Fatal编程技术网

Objective c UIButton阻止ControlState的操作

Objective c UIButton阻止ControlState的操作,objective-c,events,Objective C,Events,我得到了一个UIButton,它对两个不同的控制事件有两个操作:UIControlEventTouchDown和UIControlEventTouchUpInside 如果UIControlEventTouchUpInside触发的操作检测到需要,是否可以“阻止”绑定到UIControlEventTouchUpInside的操作 我无法更改属于UIControlEventTouchUpInside-操作的代码,因为它是私有框架的一部分,所以我必须找到另一种方法来帮助自己…使UIControlEv

我得到了一个UIButton,它对两个不同的控制事件有两个操作:
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
操作…