Cal*_*Cal 22 iphone objective-c uinavigationcontroller ipad modalviewcontroller
我试图从模态视图控制器隐藏iPad键盘,但它不起作用.我已经尝试过resignFirstResponder,但如果我们在模态视图控制器中,这没有任何影响.我在非模态UINavigationController中尝试了resignFirstResponder,它具有完全相同的UIViewController并且键盘正确隐藏.
有谁知道如何解决这个问题?
谢谢.
[更新]看起来我的代码有问题,因为resignFirstResponder确实有效(我做了一个简单的测试用例而不是使用我的代码).但我仍然不知道问题是什么.
0xc*_*ced 34
显然,有一种新-[UIViewController disablesAutomaticKeyboardDismissal]
方法可以覆盖以解决iOS 4.3中的这个问题.
这是一个完全痛苦的发现.似乎是iOS中较差的API设计之一.非常感谢@ 0xced和@manicaesar的答案.
这是我对未来开发人员的综合答案,这些开发人员被困在墙上.
如果它是单个视图控制器,只需覆盖disablesAutomaticKeyboardDismissal
并返回NO.
如果它是模态中的导航控制器,请创建自己的UINavigationController子类,如下所示:
在.h ...
@interface MyNavigationController : UINavigationController @end
在.m ....
@implementation MyNavigationController #pragma mark - #pragma mark UIViewController - (BOOL)disablesAutomaticKeyboardDismissal { return NO; } @end
在显示模态视图控制器的代码中.
UIViewController *someViewController = [[UIViewController alloc] init]; MyNavigationController *navController = [[MyNavigationController alloc] initWithRootViewController:someViewController]; navController.modalPresentationStyle = UIModalPresentationFormSheet; navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:navController animated:YES];
归档时间: |
|
查看次数: |
14191 次 |
最近记录: |