標籤:res rom 設定 uil height from sel 上傳 int
上篇中提到鍵盤相應時間中用到了擷取當前第一響應者的方法是蘋果的是有方法,無法上傳到App Store,本文將介紹一種非常簡單的且未用到私人API的方法來擷取當前第一響應者。
實現思路:用到的iOS API就是
- (BOOL)sendAction:(SEL)action to:(id)target from:(id)sender forEvent:(UIEvent *)event
利用該API,只要將傳入的target設定為nil,則系統會自動順著響應鏈尋找能夠響應action的響應者。我們只需讓所有UIResponder的子類都響應我們自訂的action,即可知道當前第一響應者是哪個對象。
Objective-C具體實現代碼.h檔案: UIResponder+FirstResponder.h
#import <UIKit/UIKit.h>
@interface UIResponder (FirstResponder)
+ (id)currentFirstResponder;
@end
.m檔案: UIResponder+FirstResponder.m
#import "UIResponder+FirstResponder.h"
static __weak id currentFirstResponder;
@implementation UIResponder (FirstResponder)
+ (id)currentFirstResponder {
currentFirstResponder = nil;
[[UIApplication sharedApplication] sendAction:@selector(findFirstResponder:) to:nil from:nil forEvent:nil];
return currentFirstResponder;
}
- (void)findFirstResponder:(id)sender {
currentFirstResponder = self;
}
@end
iOS開發時擷取第一響應者