为什么AppDelegate继承自UIResponder?

发布于 2024-11-27 08:53:04 字数 285 浏览 0 评论 0原文

我注意到,当在 Xcode 4.2 beta 4 中使用 iPhone Master-Detail 模板创建新项目时,它会:

// AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate>

Why does AppDelegate继承自UIResponder而不是NSObject ?

I noticed that when creating a new project with the iPhone Master-Detail template in Xcode 4.2 beta 4, it does:

// AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate>

Why does AppDelegate inherit from UIResponder instead of NSObject?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

淡淡绿茶香 2024-12-04 08:53:04

来自转换为 Storyboard 发行说明

注意:在当前的 Xcode 模板中,应用程序委托类继承自 UIResponder。这样委托实例就可以参与响应者链并处理应用程序级操作。如果您尚未在现有应用程序中使用此模式,则无需在故事板中采用它。

From Converting to Storyboards Release Notes:

Note: In the current Xcode templates, the application delegate class inherits from UIResponder. This is so that the delegate instance can participate in the responder chain and so handle application-level actions. If you haven’t made use of this pattern in an existing application, there’s no need to adopt it for storyboards.

东风软 2024-12-04 08:53:04

查看UIResponder的文档。由于AppDelegate可以响应触摸事件,因此它实现了UIResponder接口。

Check the documentation of UIResponder. Since AppDelegate can respond to touch events, it implements the UIResponder interface.

菊凝晚露 2024-12-04 08:53:04

UIResponder 是基类对于 UIKit 框架。 UIResponder 可以处理事件。

您的 AppDelegate 类是 的委托类UIApplication其中UIApplicationMain 创建。 AppDelegate 符合 UIApplicationDelegate< /code>协议。

UIResponder 类具有获取将填充所有视图的应用程序焦点窗口的方法,因此您应该有一个从 UIResponder 继承的类,以便将窗口作为关键。

UIResponder is the base class for the UIKit framework. UIResponder can deal with the events.

Your AppDelegate class is the delegate class for the UIApplication which UIApplicationMain creates. AppDelegate conforms to the UIApplicationDelegate protocol.

The UIResponder class has the methods to get the window of the application focus on which all the views will be populated, so you should have a class that inherits from UIResponder in order to make the window as key.

与之呼应 2024-12-04 08:53:04

我猜是这样,所以它可以访问全局撤消管理器。

I would guess it is so it has access to the global undo manager.

吻安 2024-12-04 08:53:04

AppDelegate继承自处理iOS事件的UIResponderUIResponder 类为响应和处理事件的对象定义了一个接口。

AppDelegate inherits from UIResponder that handles iOS events. The UIResponder class defines an interface for objects that respond to and handle events.

冬天旳寂寞 2024-12-04 08:53:04

更新:我下面的答案可能是错误的。我只是查看 iOS 文档中的图像。但是,它一定已经过时了。

除非 iOS 5 中有新内容且尚未记录,否则我认为这是 Xcode 4.2 beta 4 模板的拼写错误。在 iOS 应用程序中,应用程序委托应该子类化 NSObject,而不是 UIResponder,例如:

@interface AppDelegate : NSObject <UIApplicationDelegate>

对于 iOS 应用程序,在 UIKit 中(对于 Cocoa Touch,例如 iPhone 和 iPad),UIApplication 是响应者链中的最后一个响应者

对于 Mac OS X应用程序,在Application Kit(对于Cocoa,例如Mac)中,应用程序委托是响应者中的最后一个响应者链

UPDATE: My answer below might be wrong. I was just going by the image in the iOS documentation. But, it must be outdated.

Unless there's something new in iOS 5 and not yet documented, then I think this is a typo with this Xcode 4.2 beta 4 template. In an iOS app, the app delegate should subclass NSObject, not UIResponder, e.g.:

@interface AppDelegate : NSObject <UIApplicationDelegate>

For iOS apps, in UIKit (for Cocoa Touch, e.g., iPhone & iPad), UIApplication is the last responder in the responder chain.

For Mac OS X apps, in the Application Kit (for Cocoa, e.g., Mac), the app delegate is the last responder in the responder chain.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文