Ios 排除ModalViewController激活键盘问题 使用Xcode创建一个基于视图的iPhone项目(我使用的是Xcode 4,但我想Xcode 3的行为也会一样)
将以下代码放入Ios 排除ModalViewController激活键盘问题 使用Xcode创建一个基于视图的iPhone项目(我使用的是Xcode 4,但我想Xcode 3的行为也会一样),ios,uiviewcontroller,keyboard,Ios,Uiviewcontroller,Keyboard,将以下代码放入ApplicationIDFinishLaunchingMethod: -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. self.window.rootViewController
ApplicationIDFinishLaunchingMethod
:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
self.viewController.view.backgroundColor = [UIColor redColor];
UIViewController *modalVc = [UIViewController new];
modalVc.view.backgroundColor = [UIColor greenColor];
[self.viewController presentModalViewController:modalVc animated:NO];
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(0, 20, 150, 30)];
tf.borderStyle = UITextBorderStyleRoundedRect;
[self.window addSubview:tf];
[tf becomeFirstResponder];
[self.viewController performSelector:@selector(dismissModalViewControllerAnimated:) withObject:NO afterDelay:3];
return YES;
}
好的,找到了一个解决方法:添加UIKeyboardWillHideNotification的观察者,然后在回调中调用resignFirstResponder,然后以0.01延迟成为FirstResponder。(performSelector:withObject:afterDelay)在呈现模态视图控制器时看起来也会发生同样的情况。在代码段中,将“[self.viewController presentModalViewController:modalVc animated:NO]”移动到[tf becomeFirstResponder]之后,这样键盘将根本不显示。有什么线索吗?