条纹支付键盘自动弹开
Stripe Payment Keyboard Automatically Popping Open
我正在开发一个使用 Stripe 支付系统的 iOS 应用程序。问题是,我下面的代码会导致条纹的信用卡信息输入键盘自动打开:
// PaymentViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
PTKView *view = [[PTKView alloc] initWithFrame:CGRectMake(15,20,290,55)];
self.paymentView = view;
self.paymentView.delegate = self;
[self.view addSubview:self.paymentView];
}
但我希望在用户选择 PTKView(Stripe 提供的类似灰色条的东西)后显示键盘现在,一旦加载视图,输入信用卡详细信息的键盘已经打开但是我只想显示栏,这样用户可以点击它来打开键盘。
是的,你必须停止键盘外观,转到 PTKView.m fie 有一个函数“stateCardNumber”并注释代码,
[self.cardNumberField becomeFirstResponder];
这将停止自动键盘打开。
在 ViewWillAppear 中:通过在 UIResponder 和 resignFirstResponder 上使用下面提到的类别找到当前的第一响应者。
@interface UIResponder (FirstResponder)
+(id)currentFirstResponder ;
-(NSString*) firstRespondersViewController;
@end
@implementation UIResponder (FirstResponder)
static __weak id currentFirstResponder;
+(id)currentFirstResponder {
currentFirstResponder = nil;
[[UIApplication sharedApplication] sendAction:@selector(findFirstResponder:) to:nil from:nil forEvent:nil];
return currentFirstResponder;
}
-(void)findFirstResponder:(id)sender {
currentFirstResponder = self;
}
-(NSString*) firstRespondersViewController{
UIResponder *responder = self; \
while ([responder isKindOfClass:[UIView class]]) \
responder = [responder nextResponder]; \
(UIViewController *)responder;
NSLog(@"class is %@", NSStringFromClass([responder class]));
return NSStringFromClass([responder class]);
}
@end
希望对您有所帮助。
我正在开发一个使用 Stripe 支付系统的 iOS 应用程序。问题是,我下面的代码会导致条纹的信用卡信息输入键盘自动打开:
// PaymentViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
PTKView *view = [[PTKView alloc] initWithFrame:CGRectMake(15,20,290,55)];
self.paymentView = view;
self.paymentView.delegate = self;
[self.view addSubview:self.paymentView];
}
但我希望在用户选择 PTKView(Stripe 提供的类似灰色条的东西)后显示键盘现在,一旦加载视图,输入信用卡详细信息的键盘已经打开但是我只想显示栏,这样用户可以点击它来打开键盘。
是的,你必须停止键盘外观,转到 PTKView.m fie 有一个函数“stateCardNumber”并注释代码,
[self.cardNumberField becomeFirstResponder];
这将停止自动键盘打开。
在 ViewWillAppear 中:通过在 UIResponder 和 resignFirstResponder 上使用下面提到的类别找到当前的第一响应者。
@interface UIResponder (FirstResponder)
+(id)currentFirstResponder ;
-(NSString*) firstRespondersViewController;
@end
@implementation UIResponder (FirstResponder)
static __weak id currentFirstResponder;
+(id)currentFirstResponder {
currentFirstResponder = nil;
[[UIApplication sharedApplication] sendAction:@selector(findFirstResponder:) to:nil from:nil forEvent:nil];
return currentFirstResponder;
}
-(void)findFirstResponder:(id)sender {
currentFirstResponder = self;
}
-(NSString*) firstRespondersViewController{
UIResponder *responder = self; \
while ([responder isKindOfClass:[UIView class]]) \
responder = [responder nextResponder]; \
(UIViewController *)responder;
NSLog(@"class is %@", NSStringFromClass([responder class]));
return NSStringFromClass([responder class]);
}
@end
希望对您有所帮助。