gpt4 book ai didi

iphone - 您可以使用 UIControlEventApplicationReserved 创建自定义事件吗?

转载 作者:行者123 更新时间:2023-12-03 18:34:18 25 4
gpt4 key购买 nike

我编写了一个 UIControl 的子类,它跟踪许多我感兴趣的手势。在 UIControlEvents 枚举的文档中,它说有一系列称为 UIControlEventApplicationReserved 的事件号“可供应用程序使用”。这是否意味着我可以自由地将这个范围的数字用于我自己的自定义事件?

如果是这样,有人可以告诉我如何触发事件吗?我能想到的最明显的方法是:

enum {
...
MyCustomEvent = 65,
...
};

...

UIEvent* customEvent;

...

for (id target in [self allTargets])
{
for (NSString* action in [self actionsForTarget:target forControlEvent:MyCustomEvent])
{
[self sendAction:NSSelectorFromString(action) to:target forEvent:customEvent];
}
}

这可行吗?

最佳答案

好吧,这是一个老话题,但我要添加我的答案。尽管我对此表示怀疑,但我无法确定您是否可以在自己的应用程序中使用此掩码。

但我可以肯定地告诉你如何使用它。对于初学者来说,此值屏蔽位置 24、25、26 和 27 处的位。您应该编写自己的仅使用此位的枚举,例如:

enum {
MyPrimaryActionEvent = 1 << 24,
MySecondaryActionEvent = 1 << 25,
};

完成后,您可以注册以下操作:

[myButton addTarget:self action:@selector(someAction:) forControlEvents: MyPrimaryActionEvent];

每次触发 MyPrimaryActionEvent 操作时,self 都会收到消息 someAction:。现在如何触发该操作取决于按钮本身。在您自己的 UIControl 子类中,您可以按如下方式触发更改:

[self sendActionsForControlEvents:MyPrimaryActionEvent];

这会将所有操作发送到为 MyPrimaryActionEvent 事件注册的所有目标。你就完成了。

关于iphone - 您可以使用 UIControlEventApplicationReserved 创建自定义事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com