我有一个应用程序,其中将有一个非常广泛的形式。五十个左右的条目。我的层次结构看起来像这样。由于覆盖视图,表单视图中的文本字段在单击时不会在其中获得光标:
viewController.view (UIView)
svParent (UIScrollView)
部分(UIView)
titlebar(UIView)/contentWrapper(UIScrollView) (以下兄弟姐妹是 contentWrapper 的孩子)
表单(UIView)
文本字段(UITextField)
文本字段(UITextField)
文本字段(UITextField)
...等等...
我理解在超级视图上覆盖 hitTest 的概念,以便可以访问子视图上的对象,但我不完全确定如何对其进行编程。
在我的 viewController 我添加了这个:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
NSLog(@"ok");
return NO;
}
但无论我在模拟器窗口中的哪个位置单击,都不会记录任何内容。还有什么我需要做的吗?然后有人可以澄清之后会发生什么 - 这是一些自动的事情,当正常运行时,最低的子视图将获得第一响应者状态并变为活动状态(即在文本字段可编辑的情况下)。