2011-12-26 70 views
0

我這裏有一些代碼:編程按鈕

-(void)handleButton { 
    NSLog(@"hello"); 
} 

,我想是爲連接功能,當我按下一個名爲按鈕出現,theButton 我知道,你可以鏈接的東西在接口程序員,但不讓我使用功能,所以我如何做到這一點,所以我可以使用功能?

我試圖用代碼像這樣的:

[theButton setTarget:self]; 
[theButton setAction:@selector(handleButton:)]; 

設置按鈕來調用該函數,但是當我做到這一點給我,theButton未聲明的錯誤,我知道這可能是愚蠢的,有一個簡單的答案,但我不知道。

+0

我們可以看到更多的代碼嗎?你在哪裏宣佈巴頓? – MByD 2011-12-26 06:50:38

+0

我不認爲我需要太多,因爲它是在界面中...我不知道我怎麼想,因爲我命名爲聲明的按鈕,我是新的客觀的c。 – 2011-12-26 06:56:11

+0

您是否在.m文件中包含標題? – MByD 2011-12-26 07:42:32

回答

1

該方法沒有參數,所以它的選擇器將被指定爲@selector(handleButton)。但是,這是不正確的。一個動作應該採取一個參數,發送者的ID:

-(IBAction)handleButton:(id)sender { 
    NSLog(@"hello"); 
} 

至於界面生成器,它讓你設置的功能操作;這就是整個問題。如果沒有IBAction,界面生成器不知道該方法應該是一個操作,所以它不會將其作爲選項提供。

這兩個問題都很好地說明了爲什麼你應該使用代碼生成器,因爲XCode會爲你生成正確的簽名。

+0

但我怎麼會聲明它,所以我可以將該按鈕添加到該應用程序的代表? – 2011-12-26 08:43:29

+0

想通了! – 2011-12-26 08:55:12