-3

プログラムで UIButton を作成し、関数を追加しました。実行時に応答しません。

    scrollViewFrame = CGRectMake(10, 110, 300, 40);
    loginBut = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    loginBut.frame = scrollViewFrame;
    loginBut.backgroundColor = [UIColor whiteColor];
    loginBut.titleLabel.font = [UIFont fontWithName:@"Trebuchet MS" size:33];
    [loginBut setTitleColor:[UIColor Gray] forState:UIControlStateNormal];
    [loginBut setTitle:@"Login" forState:UIControlStateNormal];
    [loginBut setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];

    [loginBut addTarget:self
                          action:@selector(checkError)
                forControlEvents:UIControlEventTouchUpInside];
    self.loginBut = loginBut;

    [self.view addSubview:loginBut];

アクション:

- (void)checkError {
    if ([dispName.text isEqualToString:@""]&&[pw.text isEqualToString:@""]) {
        UIAlertView *alertFailed = [[UIAlertView alloc]initWithTitle:@"\nError" message:@"1. Display Name missing.\n2. Password missing." delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil];
        [alertFailed show];
    }

}

事前にサンクス...

4

3 に答える 3

1

ボタンが応答しているかどうかを確認するには、最初に追加します

NSLog("checkError");

メソッドへの if ステートメントの前

- (void)checkError;
于 2013-03-27T22:30:22.747 に答える
1

([dispName.text isEqualToString:@""]&&[pw.text isEqualToString:@""])

おそらく、それらのテストは単に失敗しています。たとえば、maybedispName.textは nil です。これは、空の文字列と等しいことと同じではありません。

于 2013-03-27T22:28:03.200 に答える
0

メソッド内に NSLog() を記述するだけ - (void)checkError です。印刷された場合は、if状態に問題がありました。

それ以外の場合は、試してみてください。

 [self.view bringSubViewToFront:loginBut];
 loginBut.userIntractionEnabled = YES;
于 2013-03-27T22:32:36.460 に答える