1

在我的 iPhone 应用程序中,我从 .xib 文件加载视图。在 .xib 中,我有这样的结构:UIControl 类型的主视图,其中包含 UITable 和 UIView。问题是 UIControl 没有接收到触摸,并且事件触摸的方法从不调用。我该如何解决这个问题?

在 .h 文件中,我声明了方法

- (IBAction)backgroundTap:(id)sender; 在 .m 中我实现了这个方法:

- (IBAction)backgroundTap:(id)sender
{
    [passwordTextField resignFirstResponder];
    [usernameTextField resignFirstResponder];
}

还将来自 File 所有者的 backgroundTap 事件与来自主视图的 UIControl 的 touch dowm 事件绑定

更新

实际上原因是我点击我总是点击 UiTable 元素,所以我的事件没有到达。我该如何解决这个问题,也许我可以将触摸事件从表发送到 UIControl?

4

4 回答 4

0

检查您的方法控制,我认为它没有在里面修饰,所以让它在里面修饰并尝试。

于 2013-03-07T12:35:24.157 回答
0

你可以试试这个:

yourControl.userInteractionEnabled = TRUE;

我希望这可以帮助你。

于 2013-03-07T12:24:29.767 回答
0

根据您的描述,听起来您的 xib 根视图是 UIControl?IB 不允许通过 UI,您是否从初始 UIView 手动更改了类?同样,IB 不允许您将子视图添加到 UIControl 对象。因此,在不明确知道您的 xib 结构的情况下,听起来您应该从 UIView 根目录开始,然后在 UIView 中添加 UITableView 和 UIControl 对象,而不是在 UIControl 中添加 UITableView。

于 2013-03-07T21:59:50.733 回答
0

子类化覆盖所有屏幕的控件。

touchesBegan:withEvent:将触摸重定向到您的控件的覆盖方法。

于 2013-03-07T22:07:52.343 回答