0

nibファイルのすべての接続を再確認しました。私のコード-

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"iphone_bg_login.png"]];
    self.title = @"Login screen";
    loginTxt = [[UITextField alloc] init];
    pwdText = [[UITextField alloc] init];
    loginFailedTxt = [[UILabel alloc] init];
    loginBtn = [[UIButton alloc] init];
    navAppDelegate = (NavAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    navAppDelegate.navController.navigationBarHidden = YES;
    //NSArray *subVs = (NSArray *) [self.view subviews];
    [super viewDidLoad];
}

のサブクラスを使用UIView (UIControl)し、InterfaceBuilderですべてのUI要素を追加しました。UIControl's touchDownメソッドはメソッドに接続されていbackgroundTapます。

-(IBAction) backgroundTap:(id) sender {
    [loginTxt resignFirstResponder];
    [pwdText resignFirstResponder];
    //[[UIApplication sharedApplication] becomeFirstResponder];
        //[sender resignFirstResponder];
} 

そのため、キーボードは想定どおりに取り外されません。理由はわかりません。

助けてくれてありがとう!テジャ。

4

1 に答える 1

2

DyingCactusがあなたのエラーを指摘しました。コントロールのNIBバージョンを完全に異なるコントロールに置き換え、NIB内のコントロールへのポインターを失います。を呼び出すときはresignFirstResponder、実際に画面に表示されているオブジェクトではなく、複製オブジェクトで呼び出しています。を取り除き、NIBに配線されているものallocを要求します。init

于 2010-04-19T03:43:01.200 に答える