2012-05-21 35 views
1

我在iOS的開發相當新的,我不知道如何運作這一行:UIButton @selector是如何工作的?

[myButton addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside]; 

我只是嘗試這樣做:

- (void) doSomething : (id) sender 
{ 
    NSLog(@"Test"); 
} 

但它不工作。我究竟做錯了什麼 ?

+0

請問您的代碼有一個空間在'doSomething'和結腸之間,或者是一個錯字?如果它是故意的,那麼選擇器需要是'doSomething:'。 –

+0

我嘗試了兩種,但它不起作用。 等待......如果我在我的UIViewController而不是我的UIView(以編程方式)中聲明我的按鈕,這是錯誤的嗎? – Rob

+0

什麼不行?它應該在日誌中打印「測試」,當你點擊它(並在按鈕內釋放) – Novarg

回答

1

enter image description here

.h文件中有

IBOutlet UIButton *myButton; 

中的.xib與myButton的(即圖像)鏈接按鈕

+0

請問,我必須添加在我的.h文件中以查看.xib中的「actionMyButton:」的行是什麼? – Rob

+0

你不需要** actionMyButton **。在.m文件中添加了.m文件中的** doSomething ** –

+0

當然是的,但我想我必須將我的Touch Up Inside與我的doSomething:方法相關聯,對吧? – Rob

4

嘗試以下等作爲密碼,這是爲我工作:

[myButton addTarget:self action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside]; 

並試用了此

-(void)doSomething 
{ 
    NSLog(@"Test"); 
} 

歡迎您!

+0

感謝您的建議,但它仍然不適合我。我幾乎肯定這個問題不涉及代碼,但我的連接在IB ... – Rob

+0

好吧,你右鍵點擊xib文件上的designview中的按鈕,並檢查參考插座,並觸及裏面的事件被提及或不! – Dinesh

+0

@Dinesh touchUpInside事件是不需要的,如果你會使用你顯示的方式 – Novarg

相關問題