2013-03-27 181 views
-3

我創建了一個UIButton以編程方式向它添加了一個函數。它在運行時不響應。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]; 
    } 

} 

Thanx提前...

+2

有你在你的'checkError'嘗試的NSLog(...),看看它是越來越叫什麼名字? – bendytree 2013-03-27 22:28:17

+2

[UIColor Gray]如何編譯? – danh 2013-03-27 22:29:22

回答

0

只寫了的NSLog()的方法- (void)checkError裏面。如果打印出來,那麼您的if條件出錯了。

否則只是嘗試,

[self.view bringSubViewToFront:loginBut]; 
loginBut.userIntractionEnabled = YES; 
1

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

也許這些測試只是失敗。例如,也許dispName.text是零。這不等於空字符串。

+0

這個想法是,如果沒有任何關鍵字在dispName和pw文本字段中,它會提示一個提示。我猜它不是'isEqualToString'?它應該是什麼? – 2013-03-27 22:35:09

+0

爲什麼不使用NSLog或在調試器中暫停以檢查它們的值是什麼時候?你似乎沒有做任何測試,記錄或調試。你不必*猜*你的代碼在做什麼,你知道!你不應該這樣做。 – matt 2013-03-27 23:10:04

1

,看看是否按鈕最初響應if語句前加上

NSLog("checkError"); 

的方法

- (void)checkError;