条纹支付键盘自动弹开

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

希望对您有所帮助。