首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UIView中的UITextField不响应用户交互

UIView中的UITextField不响应用户交互
EN

Stack Overflow用户
提问于 2013-07-02 04:56:51
回答 4查看 3K关注 0票数 5

这是我的场景:

我的StoryBoard中有一个用于我的映射功能的UIViewController。我添加了一个谷歌地图视图(GoogleMaps iOS 1.3.1),如下所示:

代码语言:javascript
运行
复制
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
   longitude:151.20 zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectMake(0, 49, 320, 450) camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;

我创建了一个自定义视图: MapTopBar.xib。简单地说,它是一个带有UIImageView (背景)和UITextField & UIView的按钮。它有一个支持类文件,并且所有的UITextFields属性都已经设置好了(委托、出口等)。

我将我的自定义视图添加到我的Map VC中,如下所示:

代码语言:javascript
运行
复制
UIView *topBar = [[MapTopBar alloc] initWithFrame:CGRectMake(0, 0, 320, 49)];
[self.view addSubview:topBar];

我的自定义视图正在被添加到主视图中,但是UITextField没有接收到任何触摸事件。键盘未显示,字段中无光标,无任何内容。这就好像有什么东西掩盖了它,不允许任何用户交互。它旁边的按钮可以按下,并且工作正常。

我尝试过许多不同的方法(以编程方式创建整个topBar视图,以编程方式添加文本字段),但无论如何,文本字段都不会获得用户交互。

我已经启用了用户交互,确保文本字段上没有视图,所有都是空的。我觉得我错过了一些简单的东西。为什么我不能与我的文本字段交互?

另外:如果相关,上面的代码在它自己的sub中,在超级调用之前从viewDidLoad调用。

EN

回答 4

Stack Overflow用户

发布于 2013-07-02 05:08:51

似乎UITextField位于其父视图的边界之外,并且未被裁剪。(或者父视图在其父视图的边界之外...等)

在viewDidAppear中,使用调试器或NSLog以UITextField结尾的视图层次结构。检查以确保每个视图的框架完全位于其父视图内。

下面这样的代码应该可以识别任何框架外的视图:

代码语言:javascript
运行
复制
UIView* v = _myTextField;
while ( v.superview != nil )
{
    NSLog( @"%@ - %@", NSStringFromClass([v class]), CGRectContainsRect( v.superview.bounds, v.frame ) ? @"GOOD!" : @"BAD!" );
    v = v.superview;
}
票数 1
EN

Stack Overflow用户

发布于 2013-11-28 22:28:35

我也有同样的问题!你在周围找到工作了吗?看起来UITextField的框架一切正常。出于调试的目的,我在UITextField上面放了一个按钮,这个按钮可以触摸到。也许问题出在Google地图视图处理触摸或ui绘制的方式上?

票数 1
EN

Stack Overflow用户

发布于 2014-05-08 03:17:48

确保将文本字段插入到内容视图中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17413563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档