iOS 隐藏键盘各种方法
来源:互联网 发布:淘宝怎么快速上传宝贝 编辑:程序博客网 时间:2024/05/17 06:38
方法一:
弹出UIModalPresentationFormSheet模式
- (IBAction)buttonPressed:(id)sender
{
NSLog(@"Show feedback view now!");
UIViewController *fbsheet = [[FeedbackSheet alloc] initWithNibName:@"FeedbackSheet" bundle:nil];
fbsheet.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:fbsheet animated:YES];
[fbsheet release];
}
但是当在UItextview软盘弹出之后,点击其他区域使用下面代码软盘无法隐藏
进查询资料之后发现重写disablesAutomaticKeyboardDismissal即可,该api在iOS (4.3 and later)
-(BOOL)disablesAutomaticKeyboardDismissal
{
return NO;
}
方法二:
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
[topView setBarStyle:UIBarStyleBlack];
UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithTitle:@"收起键盘" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];
[doneButton setWidth:80];
NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace,doneButton,nil];
[doneButton release];
[btnSpace release];
[topView setItems:buttonsArray];
[feedbackContent setInputAccessoryView:topView];
}
-(IBAction)dismissKeyBoard
{
[feedbackContent resignFirstResponder];
}
方法三:
UINavigationController *nv = [[UINavigationController alloc] initWithRootViewController:searchVC];
nv.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:nv animated:YES];
UINavigationController必须用Category的方法实现如下方法,才可以让键盘消失
@interface UINavigationController (DismissKeyboard)
- (BOOL)disablesAutomaticKeyboardDismissal;
@end
@implementation UINavigationController (DismissKeyboard)
- (BOOL)disablesAutomaticKeyboardDismissal
{
return NO;
}
方法四: 此方法是能解决关闭键盘,可是苹果审核会拒绝使用该api
[tfd_UserName resignFirstResponder];//没起到键盘收起的效果
@try {
Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl");
id activeInstance = [UIKeyboardImpl performSelector:@selector(activeInstance)];
[activeInstance performSelector:@selector(dismissKeyboard)];
}
@catch (NSException *exception) {
NSLog(@"%@", exception);
}
方法五:
//关闭键盘
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
想必大家都遇到过一个view上好多输入框,为了关闭弹出的软键盘要遍历然后调用resignFirstResponder的吧?今天竟然发现一个关键这个view上可能 打开的键盘很简单:[self.view endEditing:YES];
直接ok了。
方法六:
//关闭键盘
[[self findFirstResponderBeneathView:self] resignFirstResponder];
[[self findFirstResponderBeneathView:self] becomeFirstResponder];//打开键盘
- (UIView*)findFirstResponderBeneathView:(UIView*)view
{
// Search recursively for first responder
for ( UIView *childView in view.subviews ) {
if ( [childView respondsToSelector:@selector(isFirstResponder)] && [childView isFirstResponder] )
return childView;
UIView *result = [self findFirstResponderBeneathView:childView];
if ( result )
return result;
}
return nil;
}
弹出UIModalPresentationFormSheet模式
- (IBAction)buttonPressed:(id)sender
{
NSLog(@"Show feedback view now!");
UIViewController *fbsheet = [[FeedbackSheet alloc] initWithNibName:@"FeedbackSheet" bundle:nil];
fbsheet.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:fbsheet animated:YES];
[fbsheet release];
}
但是当在UItextview软盘弹出之后,点击其他区域使用下面代码软盘无法隐藏
进查询资料之后发现重写disablesAutomaticKeyboardDismissal即可,该api在iOS (4.3 and later)
-(BOOL)disablesAutomaticKeyboardDismissal
{
return NO;
}
方法二:
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
[topView setBarStyle:UIBarStyleBlack];
UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithTitle:@"收起键盘" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];
[doneButton setWidth:80];
NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace,doneButton,nil];
[doneButton release];
[btnSpace release];
[topView setItems:buttonsArray];
[feedbackContent setInputAccessoryView:topView];
}
-(IBAction)dismissKeyBoard
{
[feedbackContent resignFirstResponder];
}
方法三:
UINavigationController *nv = [[UINavigationController alloc] initWithRootViewController:searchVC];
nv.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:nv animated:YES];
UINavigationController必须用Category的方法实现如下方法,才可以让键盘消失
@interface UINavigationController (DismissKeyboard)
- (BOOL)disablesAutomaticKeyboardDismissal;
@end
@implementation UINavigationController (DismissKeyboard)
- (BOOL)disablesAutomaticKeyboardDismissal
{
return NO;
}
方法四: 此方法是能解决关闭键盘,可是苹果审核会拒绝使用该api
[tfd_UserName resignFirstResponder];//没起到键盘收起的效果
@try {
Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl");
id activeInstance = [UIKeyboardImpl performSelector:@selector(activeInstance)];
[activeInstance performSelector:@selector(dismissKeyboard)];
}
@catch (NSException *exception) {
NSLog(@"%@", exception);
}
方法五:
//关闭键盘
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
想必大家都遇到过一个view上好多输入框,为了关闭弹出的软键盘要遍历然后调用resignFirstResponder的吧?今天竟然发现一个关键这个view上可能 打开的键盘很简单:[self.view endEditing:YES];
直接ok了。
方法六:
//关闭键盘
[[self findFirstResponderBeneathView:self] resignFirstResponder];
[[self findFirstResponderBeneathView:self] becomeFirstResponder];//打开键盘
- (UIView*)findFirstResponderBeneathView:(UIView*)view
{
// Search recursively for first responder
for ( UIView *childView in view.subviews ) {
if ( [childView respondsToSelector:@selector(isFirstResponder)] && [childView isFirstResponder] )
return childView;
UIView *result = [self findFirstResponderBeneathView:childView];
if ( result )
return result;
}
return nil;
}
0 0
- iOS 隐藏键盘各种方法
- IOS键盘隐藏方法
- IOS学习:隐藏键盘方法
- iOS 隐藏键盘多种方法
- IOS之键盘隐藏方法
- 取消隐藏ios键盘的方法
- ios开发键盘隐藏的方法
- iOS隐藏键盘的几种方法
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- iOS开发隐藏键盘方法总结
- IOS中键盘隐藏方法总结
- javascript如何实现类
- Heritrix 拓展Heritrix
- HDU4772 2013 Asia Hangzhou Regional Contest C Zhuge Liang's Password
- strace,ltrace linux下跟踪进程调用的命令
- JAVA_WEB项目之使用Spring的xml配置方式在项目中管理Lucene检索框架
- iOS 隐藏键盘各种方法
- 牛顿跌代法
- 将不同的vlan合并到一起
- HDU 4862 Jump 最小费用流
- 你不自动的无情破大旗网未取得完全
- 输出二进制
- dicom图像中冠状位,矢状位和横断位的计算
- Js编码和Java后台解码 .
- HDU 1255 覆盖的面积