簡體   English   中英

關閉具有多個文本字段的第一響應者/鍵盤

[英]Dismissing the First Responder/Keyboard with multiple Textfields

在經歷了這些之后,就像認真...

關閉鍵盤的簡單方法?

...我有多個TextFields和一些TextViews 有沒有辦法為所有文本字段設置批次或組 Dismiss First Responder? 我需要為每個字段制作方法嗎? 也許我忽略了該鏈接中的某些內容?

也許我可以遵循這樣的事情:

https://stackoverflow.com/questions/3282837/problem-with-multiple-textfields-to-make-the-keyboard-dissapear

后者有意義嗎? 提前致謝。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-

我想到了....

Controller.h

@interface Controller : UIViewController <UITextFieldDelegate> {
    IBOutlet UITextField *clickedDone;
}
@property (nonatomic, retain) IBOutlet UITextField *clickedDone;

Controller.m

#import "Controller.h"
@implementation Controller
@synthesize clickedDone;

- (void)viewDidLoad
{
    [super viewDidLoad];
    [clickedDone setDelegate:self];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;    
}

該視圖有一個endEditing:可以使用的方法。 文檔說

導致視圖(或其嵌入的文本字段之一)放棄第一響應者狀態。

在您看來 controller 您可以致電:

[[self view] endEditing:YES];
clickedDone.returnKeyType = UIReturnKeyDone;  // in viewDidLoad

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{
   [textField resignFirstResponder];
   return YES;    
}

現在很容易。 您可以根據用例采用不同的方法。 就我而言,我在 UITableViewController 中有多個文本字段。 我所做的是這樣的:

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];

    [self.view endEditing:YES];
}

最佳答案是:

  1. 將 UITextFieldDelegate 協議添加到您的視圖控制器 @interface ViewController:UIViewController
  2. 在您的xib中,select textField,在“Connections Inspector”子部分中XCode右側窗格的Ulitlites部分中,將textField的代表與.xib的“文件所有者”鏈接。
  3. 在您的 Viewcontroller 實現中,包括以下內容

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{
   [textField resignFirstResponder];
   return YES;    
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM