2012-12-22 122 views
0

如何在UIBarButtonItem上設置插座。我以編程方式製作了此按鈕,現在我無法連接插座。有連接插座的代碼嗎?以編程方式設置插座UIBarButtonItem

使按鈕:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(0, 0, 50, 28); 
[button setImage:[UIImage imageNamed:@"donebutton.png"] forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(releaseKeyboard) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *barButton1 = [[UIBarButtonItem alloc] init]; 
[barButton1 setCustomView:button]; 
self.navigationItem.rightBarButtonItem = barButton1; 

選擇:

-(void)releaseKeyboard { 

[text resignFirstResponder]; 

} 

那裏的問題是:

-(void)keyboardWillHide:(NSNotification *)aNotification { 

    NSLog(@"Keyboard hide"); 
    barButton.enabled = NO; 
} 

barButton未連接到的出口,因爲我不能選擇IB中的任何東西。

+1

如果你真的是以編程的方式創建的,你應該已經在初始化時指定了一個目標和一個動作。這還不夠嗎? – 2012-12-22 00:39:25

+0

我也這麼認爲,但比我得到的錯誤:使用未聲明的標識符'按鈕' – user1883396

回答

1

,這樣反而

barButton.enabled = NO; 

使用

self.navigationItem.rightBarButtonItem.enabled = NO; 

那是因爲你沒有自己的參考barButton1了(你在另一功能 - 另一種情況下),讓單獨的barButton

+0

是的,這是訣竅。謝謝,我現在明白了! ;) – user1883396

+0

(多個)'textfields'怎麼樣?如何在不影響其他文本域的情況下獲得你想要的那個?有沒有辦法再次擁有引用,所以我們可以在另一個函數中再次使用像'barButton1'這樣的名字? – Houssni

1

「連接插座」是一個與Interface Builder完全相關的概念。當您通過代碼創建視圖時,您不會「連接網點」,而是設置您所做的目標操作機制廣告。

也許試試instanciating BarButtonItem [[UIBarButtonItem alloc] initWithCustomView:button]?呀

+0

嗯好吧。我添加了更多的代碼,所以也許你可以更好地解釋我的問題。 – user1883396

相關問題