【发布时间】:2011-09-23 13:06:07
【问题描述】:
如果我启动一个空白应用程序(单视图应用程序)并简单地将一个 UITextField 放入 NIB,一切都很好:一旦我在模拟器中单击 UITextField 就会显示一个键盘。
如果我启动我正在使用的应用程序,键盘将不会显示(就像我打开了模拟硬件键盘一样)并且我根本无法输入任何文本。但是,如果我在手机上运行相同的应用程序,键盘会出现,我可以像往常一样输入文字。
我确定这与我的代码有关,因为空白应用程序会在模拟器上显示一个键盘。我的设置如下:我有一个 RootViewController,然后添加另一个 ViewController。在这个 ViewController 中,我添加了另一个 ViewController(我希望 UITextField 所在的位置),如下所示:
if (self.addNotebook == nil) {
NSLog(@"create...");
AddNotebookViewController *avc = [[AddNotebookViewController alloc]
initWithNibName:nil bundle:nil];
self.addNotebook = avc;
[avc release];
}
[self.view addSubview:addNotebook.view];
这个新的 ViewController 中几乎没有任何东西:
#import <Foundation/Foundation.h>
@interface AddNotebookViewController : UIViewController <UITextFieldDelegate>
{
}
...
xib设置如下:
一个简单的 UITextField
文件的所有者类 = AddNotebookViewController
文件的所有者出口视图 = 视图
文本字段委托 = 文件的所有者
所以我不明白为什么键盘没有在模拟器中弹出而在我的手机上弹出...任何建议都非常受欢迎!
【问题讨论】:
-
h 文件中文本字段的 IBOutlet 定义在哪里?
-
@ott 好吧,没有,因为它不是严格需要显示键盘。我试着把它放进去并把它连起来,但它也不会改变任何东西。键盘仍然没有出现。也许与我的几个 ViewControllers 有关?但是键盘绝对不是隐藏的——我根本不能输入任何东西(在模拟器中)。而且我可以在手机上出色地(如预期)打字。
标签: iphone objective-c cocoa-touch uitextfield