iphone - 添加为 subview 时 UITextField 不显示

标签 iphone objective-c uikit ios

我正在制作一个 OpenGL ES 应用程序,我正在尝试研究如何将部分 UIKit GUI 合并到 OpenGL ES 处理的 View 上。

EAGLView 类的初始化方法中,我用这个来设置 UITextField:

add_name_field = [[UITextField alloc] initWithFrame: CGRectMake(10, 10, [UIScreen mainScreen].bounds.size.width, 50)];

在 drawRect 方法中的某处,为我的游戏渲染和处理所有内容:

[add_name_field becomeFirstResponder];
[self insertSubview: add_name_field atIndex:0];

我可以确认调用了此代码,因为我使用 NSLog 对其进行了测试,但是当它运行时,文本字段不会显示在游戏的 OpenGL View 上。如果我将代码放在 init 方法中,文本字段会在游戏开始时通过键盘正确显示。

那么如何让它在 drawRect 方法中工作呢?

感谢您的任何答复。在此期间,我将为委托(delegate)编写一些代码。

最佳答案

感谢您提供所有其他答案,但我找到了解决方案。

这是一个简单的解决方案。我只是将 addSubView 方法移动到 EAGLView 类的初始化。在我将文本字段设置为第一响应者之前,键盘不会显示。当我完成它时,我可以简单地清除文本并再次使 EAGLView 类成为第一响应者,然后再次隐藏它。

这样我就可以简单地使用键盘为我的游戏获取文本输入,在输入时显示文本并在之后隐藏它。

关于iphone - 添加为 subview 时 UITextField 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3603880/

相关文章:

ios - 在 UITextView 中禁用文本选择

ios - UIKit为什么在应用比例变换时边界不会改变

ios - UICollectionViewCell 中的标签文本未更新

ios - Xcode 运行成功但归档时出错

iPhone SDK - NSStreamEventHasBytesAvailable/appendBytes : crashing

ios - UICollectionView - 在横向模式下重新设计

iphone - 将 GLKView 与 UIViewController 一起使用

ios - 比较数据库和Json的值并显示结果

iphone - 通过SKStoreProductViewController进行礼品申请

iphone - 如何在核心动画中强制执行特定的旋转方向(即顺时针)?