iphone关闭键盘 苹果无线键盘如何关闭

\u82f9\u679c\u624b\u673a\u600e\u4e48\u5173\u95ed\u6d6e\u52a8\u952e\u76d8


\u5177\u4f53\u65b9\u6cd5\u5982\u4e0b\uff1a
1\u3001\u7b14\u8bb0\u672c\u4e0a\u5b89\u88c5\u597d\u65e0\u7ebf\u952e\u76d8\u7684\u7a0b\u5e8f\u540e\uff0c\u4f7f\u7528\u65e0\u7ebf\u952e\u76d8\u6253\u5b57\u5b8c\u6210\u540e\u3002\u51c6\u5907\u76f4\u63a5\u4f7f\u7528\u7b14\u8bb0\u672c\u7535\u8111\u4e0a\u7684\u952e\u76d8\u6253\u5b57\u3002

2\u3001\u627e\u5230\u7b14\u8bb0\u672c\u7535\u8111\u4e0a\u7684\u5de6\u8fb9\u6700\u4e0b\u65b9\u7684\u201cfn\u201d\u952e\u548c\u53f3\u8fb9\u6700\u4e0a\u65b9\u7684\u201cnum lk"\u952e\u3002

3\u3001\u6309\u4f4f\u6700\u5de6\u4e0b\u65b9\u7684\u201dfn\u201c\u952e\uff0c\u540c\u65f6\u70b9\u51fb\u6700\u53f3\u4e0a\u65b9\u7684\u201dnum lk\u201c\u952e\u3002\u70b9\u51fb\u4e00\u6b21\u5c31\u53ef\u4ee5\u4e86\u3002


4\u3001\u76f8\u5bf9\u4e0a\u9762\u4ecb\u7ecd\u7684\u65b9\u6cd5\uff0c\u6709\u66f4\u7b80\u5355\u7684\u505a\u6cd5\u3002\u4f46\u662f\u4e2a\u4eba\u4e60\u60ef\u6bd4\u8f83\u96be\u517b\u6210\uff0c\u6240\u4ee5\u7ecf\u5e38\u4f1a\u5fd8\u8bb0\u3002

5\u3001\u5728\u65e0\u7ebf\u952e\u76d8\u4f7f\u7528\u7ed3\u675f\u540e\uff0c\u627e\u5230\u65e0\u7ebf\u952e\u76d8\u6700\u53f3\u4e0a\u8fb9\u7684\u201dnun lock"\u952e\u3002

6\u3001\u627e\u5230\u65e0\u7ebf\u952e\u76d8\u6700\u53f3\u4e0a\u8fb9\u7684\u201cnum lock\u201d\u952e\u540e\uff0c\u5355\u51fb\u4e00\u6b21\uff0c\u5c31\u53ef\u4ee5\u6210\u529f\u5173\u95ed\u7b14\u8bb0\u672c\u7535\u8111\u4e0a\u7684\u5c0f\u952e\u76d8\u4e86\u3002

1 将文本框的Return Key 设为Down

2.在.h文件中添加

-(IBAction)textFieldDoneEditing:(id)sender;

在.m文件中添加

-(IBAction)textFieldDoneEditing:(id)sender
{
[sender resignFirstResponder];
}
3.在该文本框中点击右键,

选择Sent Events的Did End on Exit事件,

拖动到File’sOwner图标,

并选择TextFieldDoneEditing。

4.点击Done按钮键盘就可以关闭。
IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现例如点击键盘以外的空白区域来将键盘关闭的功能,以下是我总结出的几种关闭键盘的方法。
话不多说,接下来就是几种实现方式:
1,点击编辑区以外的地方(UIView)
这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一文,找到更多关于触碰事件的方法函式。
– (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if (![myTextView isExclusiveTouch]) {
[myTextView resignFirstResponder];
}
}
如果要使用此方式请务必记得,你操作画面的 Custom Class 一定要是 UIView 才行。
画面的 Custom Class 为 UIView
2. 点击编辑区域以外的地方(UIControl)
收起虚拟键盘的方式与前一种相同,但是如果你的触碰事件里已经且写满了程式码,那么就可以考虑使用,UIControl 的 Touch Up Inside 事件来收起键盘,方法是将以下程式码与 UIControl 的 Touch Up Inside 事件连结即可。
– (IBAction)dismissKeyboard:(id)sender {
[myTextView resignFirstResponder];
}
如果要使用此方式请务必记得,你操作画面的 Custom Class 一定要是 UIControl 才行。
画面的 Custom Class 为 UIControl
将收起键盘的方法与 UIControl 事件连结
3. 使用制作收起键盘的按钮
当没有编辑区域以外的地方可供点击来收起键盘,自己制作一个按钮来收起目前的虚拟键盘,也是一个不错的方法,由于按钮必须在虚拟键盘出现才能显示于画面上,因此必须借用 NSNotificationCenter 来帮助我们判断目前键盘的状态。
首先在 viewDidLoad: 事件中,向 NSNotificationCenter 进行注册,告诉 NSNotificationCenter 我们的 doneButtonshow: 方法函式。
– (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (doneButtonshow:) name: UIKeyboardDidShowNotification object:nil];
}
现在每当虚拟键盘出现时,就会自动呼叫我们自定义的 doneButtonshow: 方法函式,接下来只要在该方法函式里定义按钮出现的方法即可。
-(void) doneButtonshow: (NSNotification *)notification {
doneButton = [UIButton buttonWithType: UIButtonTypeRoundedRect];
doneButton.frame = CGRectMake(0, 228, 70, 35);
[doneButton setTitle:@”完成编辑” forState: UIControlStateNormal];
[doneButton addTarget: self action:@selector(hideKeyboard) forControlEvents: UIControlEventTouchUpInside];

[self.view addSubview:doneButton];
}
最后是实作按钮按下去时的 hideKeyboard: 方法函式,务必记得要在函式中移除该按钮。
-(void) hideKeyboard {
[doneButton removeFromSuperview];
[myTextView resignFirstResponder];

}
4. 使用判断输入字元
如果要使用输入特定字元(例如 return 换行字元)来收起键盘,必须先在类别内的 @interface 区段采用 协定,您可以参考 Protocol 协定的使用方式一文,获得更多关于协定的资讯。
在采用 协定之后,接着实作出协定内的 textView:shouldChangeTextInRange:replacementText:方法函式,此方法函式会在字元输入时触发,而回传的 BOOL 值则代表该字元是否要作用,下列程式码就是在此方法函式中,使用判断输入字元的方式来收起虚拟键盘(判断字元为 return 换行字元)。
– (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if () {
[myTextView resignFirstResponder];
return NO;
}
return YES;
}
最后别忘记在 viewDidLoad: 事件中,将 UITextView 的代理物件指向自己,这样程式才能正确找到实作 协定方法函式的类别。
– (void)viewDidLoad {
[super viewDidLoad];
myTextView.delegate = self;

}
5. 关于键盘遮蔽的问题
如果您在实作上有遭遇到键盘遮蔽编辑区域的问题,可以参考使用 Animation 解决小键盘挡住 UITextField 的问题一文,透过 Core Graphic 的 Animation 功能,在键盘出现时同时移动编辑区域来解决遮蔽的问题。
6. 总结
这些键盘的问题,在平时的开发过程中都会遇到,有时候不怎么好处理。这篇文章写的很详细,希望对大家的开发能有所帮助。

1、点击编辑区以外的地方(UIView)

2、点击编辑区域以外的地方(UIControl)

3、使用制作收起键盘的按钮

4、使用判断输入字元

点击编辑区以外的地方(UIView)

这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一文,找到更多关于触碰事件的方法函式。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

if (![myTextView isExclusiveTouch]) {

[myTextView resignFirstResponder];

}

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

if (![myTextView isExclusiveTouch]) {

[myTextView resignFirstResponder];

}

}

如果要使用此方式请务必记得,你操作画面的 Custom Class 一定要是 UIView 才行。

画面的 Custom Class 为 UIView

点击编辑区域以外的地方(UIControl)

收起虚拟键盘的方式与前一种相同,但是如果你的触碰事件里已经且写满了程式码,那么就可以考虑使用,UIControl 的 Touch Up Inside 事件来收起键盘,方法是将以下程式码与 UIControl 的 Touch Up Inside 事件连结即可。

- (IBAction)dismissKeyboard:(id)sender {

[myTextView resignFirstResponder];

}

- (IBAction)dismissKeyboard:(id)sender {

[myTextView resignFirstResponder];

}

如果要使用此方式请务必记得,你操作画面的 Custom Class 一定要是 UIControl 才行。

画面的 Custom Class 为 UIControl

将收起键盘的方法与 UIControl 事件连结

使用制作收起键盘的按钮

当没有编辑区域以外的地方可供点击来收起键盘,自己制作一个按钮来收起目前的虚拟键盘,也是一个不错的方法,由于按钮必须在虚拟键盘出现才能显示于画面上,因此必须借用 NSNotificationCenter 来帮助我们判断目前键盘的状态。

首先在 viewDidLoad: 事件中,向 NSNotificationCenter 进行注册,告诉 NSNotificationCenter 我们的 doneButtonshow: 方法函式。

- (void)viewDidLoad {

[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (doneButtonshow:) name: UIKeyboardDidShowNotification object:nil];

}

- (void)viewDidLoad {

[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (doneButtonshow:) name: UIKeyboardDidShowNotification object:nil];

}

现在每当虚拟键盘出现时,就会自动呼叫我们自定义的 doneButtonshow: 方法函式,接下来只要在该方法函式里定义按钮出现的方法即可。

隐藏自身软键盘
  当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。
该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)——
- (IBAction)TextField_DidEndOnExit:(id)sender {
// 隐藏键盘.
[sender resignFirstResponder];
}

  然后在.h文件中填写该方法的声明——
- (IBAction)TextField_DidEndOnExit:(id)sender;

  回到storyboard,并按command+option+enter打开辅助窗口,使辅助窗口显示.h文件。
选中一个UITextField控件,点击鼠标右键弹出面板,鼠标左键按住Did End on Exit事件旁边的圆圈,然后拖曳到右侧.h文件的TextField_DidEndOnExit方法上,便会建立好事件连接。
随后按照同样的做法,将其他UITextField控件的Did End on Exit事件也连接到TextField_DidEndOnExit方法。
  运行一下,可发现每个文本框的软键盘都可以通过点击“Return”来隐藏了。

  • iphone鎬庝箞鍏抽棴閿洏
    绛旓細浣跨敤蹇嵎閿佸湪璁剧疆涓叧闂敭鐩樸1銆佷娇鐢ㄥ揩鎹烽敭锛氬悓鏃舵寜涓婥ommand鍜孯eturn閿紝灏卞彲浠ヨ繀閫熷叧闂敭鐩銆2銆佸湪璁剧疆涓叧闂敭鐩橈細鍦ㄨ缃腑鎵撳紑瑙︽帶锛岀劧鍚庡湪杈呭姪瑙︽帶涓皢鏄剧ず灞忓箷閿洏鍏抽棴鍗冲彲銆
  • iphone閿洏鎬庝箞鍏抽棴
    绛旓細浣跨敤蹇嵎閿細iPhone鎻愪緵浜嗕竴浜涘揩鎹烽敭锛屽彲浠ュ揩閫熷叧闂敭鐩樸鍏朵腑涓绉嶆渶蹇殑鏂规硶鏄娇鐢–ommand+Return缁勫悎閿紝鍙互绔嬪嵆鍏抽棴閿洏銆傚彟澶栵紝鐢ㄦ埛杩樺彲浠ヤ娇鐢–ommand+K缁勫悎閿潵鍏抽棴閿洏銆傜偣鍑昏儗鏅叧闂敭鐩橈細鐢ㄦ埛鍙互鐐瑰嚮鑳屾櫙鏉ュ叧闂敭鐩樸傚湪View鎴栧瓙瑙嗗浘涓紝閫氳繃鎵цendEditing鏂规硶鍙互寮哄埗缁撴潫缂栬緫鐘舵侊紝浠庤屽疄鐜板叧闂敭鐩樼殑鏁...
  • iphone閿洏鎬庝箞鍏虫帀
    绛旓細棣栧厛锛屽湪浣犵殑iPhone涓婃墦寮浠讳綍搴旂敤绋嬪簭鍚敤閿洏銆傚鏋滀綘姝e湪浣跨敤鐨勬槸閫氳搴旂敤绋嬪簭锛屾瘮濡傜煭淇℃垨鑰呭井淇★紝閭d箞浣犲彲浠ラ氳繃涓婃粦鎴栦笅婊戞枃瀛楁鏉ラ殣钘忛敭鐩橈紱濡傛灉浣犳鍦ㄤ娇鐢ㄧ殑鏄叾浠栧簲鐢ㄧ▼搴忥紝姣斿缃戦〉娴忚鍣ㄦ垨鑰呯數瀛愰偖浠讹紝杩樺彲浠ヤ娇鐢ㄩ敭鐩樺彸涓嬭鐨勫皬鐏扮偣鏉ラ殣钘忛敭鐩樸傞櫎浜嗛殣钘忛敭鐩橈紝鑻规灉鎵嬫満杩樻湁涓浜涘叾浠栫殑閿洏鎶宸с備緥濡傦紝...
  • 鑻规灉鎵嬫満鏀惰捣閿洏鎬庝箞鍏抽棴?
    绛旓細1銆侀鍏堟墦寮鎵嬫満锛屽苟鐐瑰嚮妗岄潰鈥滆缃濃斺滈氱敤鈥濊繘鍏ラ〉闈2銆佸湪寮瑰嚭鐨勫璇濇涓夋嫨鈥滈敭鐩樷濊繖涓夐」銆3銆佺劧鍚庡湪寮瑰嚭鐨勯〉闈腑閫夋嫨鍩规闂封滅┖鏍奸敭纭鈥濊繖涓夐」銆4銆佹渶鍚庡彲浠ラ氳繃绌烘牸閿潵闅愯棌閿洏锛岃繖鏍疯缃嫻鏋滄墜鏈烘敹璧烽敭鐩樼殑闂灏辫В鍐充簡銆俰Phone鏃ュ父搴旇濡備綍淇濆吇锛1. 閫夋嫨涓娆鹃傚悎鑷繁鐨勬墜鏈虹殑閽㈠寲鑶滃拰...
  • 鑻规灉鎵嬫満鎬庝箞璁剧疆鎵撳瓧鐨勬椂鍊欎笉鏄剧ず閿洏鍛?
    绛旓細杩欓噷闈㈠氨鏄珮绾х郴缁熻缃簡锛屽鍥炬墍绀鸿繖閲岄潰灏辨槸楂樼骇绯荤粺璁剧疆浜嗭紝濡傚浘鎵绀鸿繖閲岄潰灏辨槸楂樼骇绯荤粺璁剧疆浜嗭紝濡傚浘鎵绀鸿繖閲岄潰灏辨槸楂樼骇绯荤粺璁剧疆浜嗭紝濡傚浘鎵绀鸿繖閲岄潰灏辨槸楂樼骇绯荤粺璁剧疆浜嗭紝濡傚浘鎵绀鸿繖閲岄潰灏辨槸楂樼骇绯荤粺璁剧疆浜嗭紝濡傚浘鎵绀鸿繖閲岄潰灏辨槸楂樼骇绯荤粺璁剧疆浜嗭紝濡傚浘鎵绀鸿繖閲岄潰灏辨槸楂樼骇绯荤粺璁剧疆浜嗭紝濡傚浘鎵绀鸿繖閲岄潰灏辨槸楂樼骇...
  • 鑻规灉鎵嬫満濡備綍闅愯棌閿洏
    绛旓細鎸変綇鈥滃紑鏈洪敭+闊抽噺鈥濆嵆鍙鑻规灉鎵嬫満闅愯棌鍔熻兘 1銆佸揩閫熻緭鍏ユ爣鐐圭鍙 锛1锛夋垜浠鎵撳紑鐭俊鐣岄潰锛屾帴涓嬫潵瑕佹妸鐐瑰嚮鍦扮悆鍥炬爣鎶閿洏鍒囨崲鍒板叏瀛楁瘝閿洏鐘舵併傦紙2锛夋寜浣忓乏涓嬭鐨勨123鈥濋敭鍚庯紝绯荤粺浼氳嚜鍔ㄥ垏鎹㈠埌鏍囩偣绗﹀彿鐣岄潰锛岃繖鏃舵垜浠笉瑕佹澗鎵嬬户缁粦鍔ㄦ墜鎸囧埌闇瑕佽緭鍏ョ殑鏍囩偣绗﹀彿澶勶紝涔嬪悗鏉惧紑锛岃繖鏍锋搷浣滄垜浠氨鍙互寰堝揩閫...
  • 濡備綍鍒犻櫎鑻规灉鎵嬫満iPhone鐨閿洏
    绛旓細鍏蜂綋濡備笅锛1. 棣栧厛锛岃澶у鍦ㄨ嚜宸辩殑鎵嬫満涓壘鍒扳滆缃濆浘鏍囷紝鐐瑰嚮杩涘叆涓荤晫闈紝鐒跺悗渚濇閫夋嫨鍏朵腑鐨勨滈氱敤鈥濆拰鈥閿洏鈥濋夐」銆2. 绗簩姝ワ紝鎴戜滑鏉ュ埌濡傚浘鎵绀虹殑鏂扮晫闈紝璇风偣鍑婚《閮ㄧ殑鈥滈敭鐩樷濆嵆鍙3. 绗笁姝ワ紝鎺ヤ笅鏉ワ紝鎴戜滑闇瑕侀夋嫨鏂扮晫闈㈠彸涓婃柟鐨勨滅紪杈戔濊繖涓椤广4. 绗洓姝ワ紝瀹屾垚涓婁竴姝ュ悗锛岃澶у鐐瑰嚮...
  • 鑻规灉iPhone11鎵嬫満涓棤鐢ㄧ殑閿洏濡備綍鍒犻櫎
    绛旓細1. 瑙i攣鎵嬫満鍚庯紝鎵惧埌妗岄潰涓婄殑銆愯缃戝浘鏍囷紝鎵撳紑銆2. 杩涘叆璁剧疆椤甸潰鍚庯紝涓嬫柟鎵惧埌銆愰氱敤銆戠殑閫夐」锛屾墦寮銆3. 杩涘叆閫氱敤璁剧疆椤甸潰鍚庯紝鎵惧埌涓嬫柟鐨勩閿洏銆戠殑閫夐」锛岀偣鍑汇4. 杩涘叆閿洏椤甸潰鍚庯紝缁х画閫夋嫨閿洏閫夐」锛岀偣鍑昏繘鍏ャ5. 濡傚浘锛屽湪鎵撳紑鐨勯〉闈紝灏卞彲浠ョ湅鍒板凡瀹夎鐨勯敭鐩樺垪琛ㄤ簡锛岀偣鍑诲彸涓婅鐨勭紪杈戦夐」銆6. ...
  • ios鎬庝箞鍏抽棴瀹夊叏閿洏?
    绛旓細1. 鍒囨崲鍒扮郴缁熻嚜甯︾殑閿洏锛氬湪杈撳叆鐣岄潰涓婂悜宸︽粦鍔ㄦ寜閿垏鎹㈠埌鍏朵粬杈撳叆娉曪紝濡傜郴缁熷唴缃殑閿洏銆2. 鍋滅敤瀵嗙爜閿洏锛氳繘鍏ョ郴缁熻缃-閫氱敤-閿洏锛屽湪鈥滈敭鐩樷濆姛鑳戒笅鎵惧埌鈥滃瘑鐮佽嚜鍔ㄥ~鍐欌濓紝鍏抽棴鎸夐挳鍗冲彲鍋滅敤瀵嗙爜閿洏銆傞渶瑕佹敞鎰忕殑鏄紝鍋滅敤瀵嗙爜閿洏鍚庯紝鑻ヤ娇鐢ㄥ叾浠栫涓夋柟杈撳叆娉曞垯涓嶈兘浜彈鍏朵繚鎶や綔鐢ㄣ3. 鍗歌浇搴旂敤锛氬鏋滄槸...
  • iPhone 鐨勮緭鍏ラ夐」鏍忛噷濡備綍鍏抽棴鈥閿洏璁剧疆鈥濋偅涓鏍?
    绛旓細涓銆佺郴缁熻嚜甯︾殑杈撳叆娉曡缃節瀹牸 1銆iPhone6绯荤粺鑷甫鐨勮緭鍏ユ硶锛屽湪褰撳墠涔熸槸鏀寔涔濆鏍兼ā寮忕殑锛屽厛璇峰湪灞忓箷涓婃壘鍒扳滆缃濆簲鐢ㄥ浘鏍囷紝鐒跺悗鐐瑰嚮鎵撳紑銆2銆佹帴涓嬫潵鍦ㄨ缃垪琛ㄤ腑鎵惧埌鈥滈氱敤鈥濅竴鏍忥紝鐐硅繘杩涘叆銆3銆佸湪閫氱敤鍒楄〃閲岋紝璇锋壘鍒扳閿洏鈥濅竴鏍忥紝鐐瑰嚮杩涘叆銆4銆佹帴鐫鍦ㄩ敭鐩樺垪琛ㄤ腑锛屽啀鐐瑰嚮鈥滈敭鐩樷濅竴鏍忋5銆侀殢鍚...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网