2012-03-07 56 views
0

我不明白爲什麼選擇器沒有被調用。選擇器不叫

// EDITED

[self.scrollView setContentSize:CGSizeMake(320, 600)];   

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [btn addTarget:self 
      action:@selector(validateTextFields:) 
      forControlEvents:UIControlEventTouchUpInside]; 

    [btn setTitle:@"Продължи" forState:UIControlStateNormal]; 
    btn.frame = CGRectMake(55, 580, 210, 50); 
    [self.scrollView addSubview:btn]; 



-(IBAction)validateTextFields:sender 
{ 
    NSLog(@"Called"); 
} 

當我觸摸按鈕 「稱」 是不是在控制檯登錄。如果我將UIControlEventTouchUpInside更改爲UIControlEventTouchDown,則將執行validateTextFields方法。

+0

重疊任何其他視圖按鈕? – Hector 2012-03-07 10:59:17

+0

您沒有在您將按鈕添加到視圖的位置顯示任何代碼。你有沒有這樣做,或者你是否將它與一個筆尖上的按鈕混淆? – Jim 2012-03-07 11:08:11

+0

請參閱更新代碼 – foho 2012-03-07 11:13:32

回答

0

類型爲動作要

- (IBAction)validateTextFileds:(id)sender 
{ 
    // do your stuff 
} 

,並在addTarget@selector參數應該是這樣的:@selector(validateTextFields:)

+0

我做了您所建議的更改,但沒有運氣。當按鈕設置爲UIControlEventTouchUpInside時 - (IBAction)singleTap:(id)發件人未執行。 – foho 2012-03-07 11:02:31

+1

在iOS中不是這樣,有[多個方法簽名](https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html#//apple_ref/doc/ uid/TP40002974-CH7-SW44)你可以使用。 – Jim 2012-03-07 11:05:22

+0

如果您將IB的按鈕連接到相同類型的事件,您是否會點擊?可能是你的觀點與另一個觀點重疊,所以你沒有得到觸摸事件? @Jim,你是對的,我可能是技術背後:),因爲它並不總是那樣的 – 2012-03-07 11:17:51

-1

試試這個:

[addContact addTarget:self action:@selector(buttonPressed:)forControlEvents:UIControlEventTouchUpInside];  

-(IBAction)buttonPressed:(id)sender{ 
} 
+0

對我沒有任何影響。 – foho 2012-03-07 11:08:39