[英]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:
.
如果您希望進入灰色區域, UIApplication
和UIWindow
上都有一個私有API方法, - (id)firstResponder
將為您提供當前的第一個響應者。 我和他們有很好的記錄。 我更喜歡UIWindow
方法,當涉及多個窗口時更安全。
其他方式:
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.