【问题标题】:Will touchesBegan method called without UIView or UIViewController in iPhone?在 iPhone 中是否会在没有 UIView 或 UIViewController 的情况下调用 touchesBegan 方法?
【发布时间】:2011-05-04 13:55:31
【问题描述】:

我创建了一个应用程序,其中只有 appdelegate 类。我不创建 UIView 或视图控制器。我刚刚在我的窗口中添加了文本字段、标签和按钮。

我想在用户点击文本框时隐藏键盘。这通常通过 touchesBegan 方法实现。为了实现这个方法,我们需要做两件事。

一个是在头文件中添加(.h)

另一个是设置 textField 的委托。也就是 textField.delegate=self;

我做了这两件事。但是仍然没有调用 touchesBegan 方法。

为什么?我应该有一个 UIView 或 UIViewController 类吗?

提前致谢

【问题讨论】:

    标签: iphone uikeyboard touchesbegan resignfirstresponder


    【解决方案1】:

    UIWindowUIView 的子类,所以你可以直接加入这些。但这是一个非常糟糕的设计模式。考虑修改您的应用程序,使其使用单个视图控制器,而不是在应用程序委托中执行所有操作。否则,您将陪审团操纵应用程序委托,使其成为它从未设计过的事情。

    【讨论】:

    • 感谢您的回复...我知道这很糟糕。我只想知道为什么它不起作用。那么我需要做些什么才能使其适用于这种情况?
    【解决方案2】:

    touchesBegan 是一个 UIView 方法。如果您想在设置中执行此操作,您应该创建一个 UIView 子类,将所有控件放入该子类中并在 UIView 子类中实现 touchesBegan。

    【讨论】:

    • 感谢您的回复...所以,我们不能在不创建 UIView 子类的情况下使用 touchBegan 方法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多