- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想实现 UIControl 的自定义子类。除了一个让我吐出 dentry 的致命问题外,它工作得很好。每当我使用 sendActionsForControlEvents: 发送操作消息时,它都会忽略包含 UIEvent。例如,如果我将它链接到具有以下签名的方法:
- (IBAction) controlTouched:(id)sender withEvent:(UIEvent *)event
...事件总是返回为 nil!问题似乎发生在 sendActionsForControlEvents 中:
现在,我需要我的 IBAction 能够确定触摸的位置。我通常通过从事件中提取触摸来做到这一点。一定有某种方法可以确保传递正确的事件吗?这是使用 UIControl 的一个非常基本的部分!
有人知道合法的解决方法吗?
最佳答案
我假设这是因为 sendActionsForControlEvents:
方法无法知道您的控制事件应该与哪个 UIEvent
(如果有)相关联。
您可以尝试单独发送所有操作(根据文档复制 sendActionsForControlEvents:
方法的作用),因此您可以专门将它们与 UIEvent
相关联:
UIEvent *event = ...;
UIControlEvents controlEvent = ...;
for (id target in [self allTargets]) {
NSArray *actions = [self actionsForTarget:target forControlEvent:controlEvent];
for (NSString *action in actions) {
[self sendAction:NSSelectorFromString(action) to:target forEvent:event];
}
}
关于iphone - UIControl:sendActionsForControlEvents 省略了 UIEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382816/
我正在调试一些模糊/点击事件处理,发现使用断点或警报弹出窗口来调试事件处理可能会阻止其他事件的处理。我提供了一个带有 2 个输入字段的 jsfiddle。一个输入字段有一个blur() 事件处理程序,
我正在学习 iOS 的触摸事件机制。 从文档中我了解到,当第一次触摸发生时,将创建一个 UIEvent 对象,它会一直存在到最后一次触摸,并且它将包含所有 UITouch 在此期间创建的对象。 但在我
我有一个有趣的场景。我有一个包含按钮的自定义 TableViewCell 类。我想做的是在自定义单元格类中捕获按钮的触摸事件,并抛出一个新事件供容器控件 (ler) 处理。 这样做的原因是我有一个带有
有没有办法获得触发 UIEvent 的触摸手势类型?因此,假设我使用 hitTest:withEvent: 拦截了一个手势。我如何确定触发此方法的触摸类型(捏合、点击、滑动等)? 我可以从 UIEve
根据cocoa文档,UIEvent上的timestamp是“自系统启动以来的秒数”。这是一个 NSTimeInterval。 我想尽可能高效地生成一个等价的数字。当然,我想在UIEvent不发光的地方
如果由于脚本中的某些长时间运行的方法而导致一堆 UIEvent 排队,并且在该方法结束时我setTimeout(myfunc, 0),那么将按什么顺序 myfunc 相对于先前排队事件的处理程序被调用
我通常不会在这里问问题,但这没有意义。 加载并解析 Json(使用 swiftyjson)后,我调用此方法: //remove a loadin screen uiviewLoader?.remo
阅读Apple documentation我发现 UIEventTypeMotion 仅对拦截 Shake 有用。听起来很奇怪...但是 UIEventTypeMotion 上的唯一子类型是 UIEv
监听 UIEventTypeRemoteControl 事件、响应播放/暂停命令等真的很容易。但是,我需要做的是能够将这些事件发送到设备,这样我的应用程序就可以控制当前正在播放音乐的任何其他应用程序的
我有录音/播放应用程序。但是当用户使用普通有线 iPhone 耳机上的播放/暂停按钮时,我想暂停播放。所以我实现了远程事件的处理: // MARK: Overrides internal extens
我想实现 UIControl 的自定义子类。除了一个让我吐出 dentry 的致命问题外,它工作得很好。每当我使用 sendActionsForControlEvents: 发送操作消息时,它都会忽略
我正在重写自定义 UIWebView 子类中的 -hitTest: 方法。传递给此方法的 UIEvent 始终具有空的触摸集( [[event allTouches] count] is == 0 )
想象一个 View ,比如说,有 4 个 subview ,彼此相邻但不重叠。我们称它们为 View #1 ... View #4 所有 5 个这样的 View 都是我自己的 UIView 子类(是的
我有一个简单的滑动手势,我希望它的优先级非常低。我希望它被 View 上的控件发生的事件取消。起初,我认为这很简单。当手势发生时取消事件很容易,但我似乎不能做相反的事情。 我的解决方案是,如果手势与任
我在文档中找不到任何地方。当在我的 UIView 子类上调用此消息时: - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
我有一个自定义的 UIView 实现了 hitTest:withEvent: -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
我想做的是设置一堆 UIControl 对象,通过同一个处理程序发送所有事件。该处理程序需要根据触发的 UIControlEvents 类型确定适当的操作。 - (void)handleEventFr
有人知道是否有 UIEvents 跟踪 MPart 的关闭/打开吗? 只是说一下,我不需要 @PreDestroy 方法。我需要在 MPart 类之外执行一些操作。 谢谢 最佳答案 而不是使用 UIE
我正在尝试使用有效的 UIElement 构建一个简单的库。我想要做的是,从一个类实例创建 UIViewController 对象,并使用 presentViewController 方法将新的 Vi
我有一个派生自 UIControl 的类,我在其中监视 touchesBegan/Moved/Ended/Cancelled 事件。在这些事件中,我对 super 响应者和下一个响应者调用相同的事件,
我是一名优秀的程序员,十分优秀!