簡體   English   中英

iOS 7如何獲取當前所選的UITextField id

[英]iOS 7 how to get current selected UITextField id

在調用dismissKeyboard時,我將每個UITextField添加到resignFirstResponder。

有沒有辦法可以獲得當前所選UITextField的id並使其成為resignFirstResponder?

#import "NewBabyViewController.h"

@interface NewBabyViewController ()
@property (weak, nonatomic) IBOutlet UITextField *BabyName;
@property (weak, nonatomic) IBOutlet UITextField *BabyNickname;    
@end

@implementation NewBabyViewController

- (void)viewDidLoad
{
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(dismissKeyboard)
                                   ];
    [self.view addGestureRecognizer:tap];
}

-(void)dismissKeyboard{

    [self.view endEditing:YES];
    //[self.BabyName resignFirstResponder];
    //[self.BabyNickname resignFirstResponder];
}

-(IBAction)textFieldDone:(id)sender
{
    [sender resignFirstResponder];
}

@end

這個問題的解決方案並不是很明顯,但它實際上非常容易解決。 只需使用以下內容:

-(void)dismissKeyboard {
    [self.view endEditing:YES];
}

您應該自己跟蹤第一個響應者。 有多種方法可以做到這一點,但最簡單的方法是更新textFieldDidBeginEditing: .

如果您希望進入灰色區域, UIApplicationUIWindow上都有一個私有API方法, - (id)firstResponder將為您提供當前的第一個響應者。 我和他們有很好的記錄。 我更喜歡UIWindow方法,當涉及多個窗口時更安全。

其他方式:

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];

暫無
暫無

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

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