如何判断UIView何时获得焦点
在iPhone上,我们可以简单地使用(void) viewDidAppear:(BOOL)animated;
在视图成为焦点时执行操作。在某些事件中,我们有一个模态视图,在其上有另一个模态视图,在iPhone上,关闭最顶端的模式视图将激发viewDidAppear以获取较低模态视图。如何判断UIView何时获得焦点
这不是iPad的情况,因为视图保持“可见”,即使它位于另一个模态视图的后面。有什么方法可以从视图本身变成活动视图时从UIViewController中知道吗?
能当模态视图控制器的视野中消失不只是用? 当模态视图的控制器收到viewWill/DidDissapear时,您知道原始视图再次可见。
编辑: 在ViewController中添加此模态的viewDidDissapear:
[self.parentViewController viewDidAppear:animated];
这将使被称为viewDidAppear方法,因为它是在iPhone上。
你并不需要设置self.parentViewController所有的,因为它是在presentModalViewController方法为你做了(一个您的使用,以显示模式视图控制器)
尝试检查[theUIView isFirstResponder] 值应该是真正的具有键盘的焦点视图等
听起来像一个可能性,但这种ISN这不是一个真正的事件。我们希望回应变得活跃的观点,而不是经常检查它是否有效。 – mjdth 2010-10-22 19:39:02
问题是我们必须在两个模态视图之间设置一个链接,并告诉其他人在理想情况下让第一个模态视图在任何时候变为活动状态时执行动作时告诉其他人执行动作。 – mjdth 2010-10-22 19:32:11
在模态表示的视图控制器上,覆盖ViewDidDissapear:动画方法并放入'[self.parentViewController viewDidAppear:animated];'。当第二个模式视图控制器消失并因此出现第一个视图控制器时,这将有效地表示第一个视图控制器的ViewDidAppear被消息/调用。所以你只需要把你想要的第一个视图控制器在ViewDidAppear中变得活跃的所有动作,就像你在iphone上的常规一样。 – 2010-10-22 20:10:38
这听起来像它会工作。我们采取了一种稍微不同的方法,但如果我们想到它,我可能会这样做。 – mjdth 2010-11-04 22:12:19