iPhone开发实现点击一个UIImageView时打开键盘 .
同样的需求,做Android客户端时在没有文本框时也可以通过inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);调出系统键盘。
但是,IOS中貌似没有这样的接口,所以可以采用“隐藏文本框”的方式,调出系统键盘,具体实现如下:
1、在ViewController.xib上放置一个ImageView和一个UITextField(代码中将其设置为隐藏),如下:
[img]
[/img]
2、ViewController.h如下:
#import <UIKit/UIKit.h>@interface ViewController : UIViewController<UITextFieldDelegate>{ BOOL hasOpenKeyBoard;//是否打开键盘}@property(strong,nonatomic)IBOutlet UIImageView *imgView;@property(strong,nonatomic)IBOutlet UITextField *textField;-(IBAction)showKeyBoard:(id)sender;@end
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController@synthesize imgView;@synthesize textField;- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. //隐藏文本框 textField.hidden = YES; //设置代理 textField.delegate = self; hasOpenKeyBoard = false;}- (void)viewDidUnload{ [super viewDidUnload]; // Release any retained subviews of the main view.}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);}-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"touchesBegan..."); //[imgView becomeFirstResponder]; if(!hasOpenKeyBoard){ [textField becomeFirstResponder]; }else{ [textField resignFirstResponder]; } hasOpenKeyBoard=!hasOpenKeyBoard;}#pragma mark UITextFieldDelegate Methods- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSLog(@"string=%@",string); return YES;}@end