objective-c - 使用 UIControl(特别是 UIButton)时如何对目标进行排序?

标签 objective-c ios uikit uibutton uicontrol

在我的应用程序中,我有多个 UIButtons 我为其添加了目标。

事实证明,最近添加的目标首先被执行,然后是剩余的目标。

例如,拿这段代码:

[button addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventTouchUpInside];

[button addTarget:self action:@selector(someOtherAction:) forControlEvents:UIControlEventTouchUpInside];

如果我在 button 内部进行修饰,someOtherAction: 将在 someAction 之前被调用。

这不是我想要的。我想对目标进行排序,以便我可以在该按钮内部进行修饰,首先调用 someAction:ability,然后是其他操作 someOtherAction:

我不确定从哪里开始,我应该继承并覆盖 UIButton 中的某些内容,还是深入 UIControl 中?

感谢您的帮助!

-大卫

最佳答案

执行此操作的最简单(虽然有点老套)的方法是复制所有 Action 选择器,将它们从目标中删除,然后重新添加所有 Action 选择器,但您希望首先发生的 Action 除外。

但是,您的要求可能是糟糕设计决策的副作用,因为这不是必要的行为。

让事情先发生的最终目标是什么?

为什么不能将这两个操作合并为一个以正确顺序执行选择器的操作?

关于objective-c - 使用 UIControl(特别是 UIButton)时如何对目标进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8828740/

相关文章:

ios - 在显示附加到 inputAccessoryView 的 UIMenuController 中隐藏 'select' 、 'selectAll' 、 'paste' ?

objective-c - 如何在 Cocoa 中从 MP3 文件中提取 ID 标签?

ios - UIAlertController 中 UITextField 之间的距离

ios - 谷歌地图中的 "My location button"消失了

iOS 7 不调用 layoutSubviews

ios - 使用什么变量名

ios - UISegmentedControl:如何在使用自定义图像时不突出显示已选择的片段

ios - 从一个 View Controller 移动到另一个 View Controller 时如何保存表格 View 数据?

swift - UICollectionView viewForSupplementaryElementOfKind didSelect

iphone - 为什么 -animateWithDuration :delay:options:animations:completion: blocking the UI?