gpt4 book ai didi

iPhone 急救人员

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

我对 iPhone 响应链感到困惑。具体来说,在iPhone事件处理指南http://developer.apple.com/iPhone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/EventHandling/EventHandling.html ,我们有以下内容:

第一响应者是应用程序中的响应者对象(通常是 UIView 对象),它被指定为除触摸事件之外的事件的第一个接收者。

但是UIView是UIResponder的子类。 UIResponder 类引用是这样说的:

- (BOOL)canBecomeFirstResponder

返回值

如果接收者可以成为第一响应者,则为"is",否则为“否”。讨论

默认返回 NO。如果响应者对象从此方法返回 YES,则它成为第一响应者,并且可以接收触摸事件和操作消息。子类必须重写此方法才能成为第一响应者。

我对明显的矛盾感到困惑。谁能帮我解决一下吗?

无论如何,我确实设置了一个简单的基于 View 的应用程序,并在其 View 上调用 canBecomeFirstResponder 和 isFirstResponder 。两者都返回 NO。

最佳答案

术语可能会令人困惑。不要将“第一响应者”视为“初始事件目标”,即作为第一响应者的对象成为所有事件的初始目标。在某些 API 中,这也称为“焦点”,尽管在 Apple API 中通常保留用于描述窗口。

在任何给定时间,应用程序中只有一个第一响应者/初始事件目标。只有单个对象/实例才能成为第一响应者/初始事件目标。类只能定义它们的实例是否有能力成为第一响应者/初始事件目标。如果有意义的话,类只需提供成为应用程序的第一响应者/初始事件目标的能力。例如,文本字段显然需要能够捕获事件,以便它可以使用这些事件来编辑自身。相比之下,静态标签不需要这样的功能。

特定类是否继承自 NSResonder 与该类(或该类的特定实例)是否将其自身设置为第一响应者/初始事件目标无关。该能力仅来自实例对 canBecomeFirstResponder 消息的响应。同一实例可以在一组条件下拒绝成为第一响应者/初始事件目标,然后在条件发生变化时允许它成为第一响应者/初始事件目标。如果愿意的话,类当然可以硬连接状态。

换句话说,第一响应者/初始事件目标是特定时间特定实例的状态。第一响应者/初始事件目标就像一个烫手山芋或在 UI 中从一个实例传递到另一个实例的 token 。有些类(class)根本拒绝抢这个烫手山芋。有些人总是这样做,有些人有时会捕获它,而另一些人则忽略它。

关于iPhone 急救人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2612154/

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