2013-08-06 96 views
1

我正在爲學習目的製作一個notes應用程序,並且遇到UIBarButton問題。如何在編輯UItextview時交換UIBarbuttons

的問題

當我點擊TextView的開始編輯,我想正確的barbutton更改爲「完成」,使得用戶可以關閉鍵盤與它(和自動保存在後臺)。我的問題是讓用戶按下「完成」後,按鈕返回到我原來的rightbarbutton。

什麼我試過到目前爲止

我已經試過使得原來的位置來看的屬性,但在我看來,故事板代表barbuttons的位置,而不是實際的實體。所以這是不成功的,因爲當我嘗試時我只有一個空白點。

我已經找遍了所有的答案,但我沒有得到一個。請幫幫我。

回答

0

你是對的UIBarButtonItem不是視圖,它們只是描述視圖的對象。所以設置一個框架或中心是不可能的。

你需要做的是創建兩個UIBarButtonItems一個編輯和一個完成。然後使用UIToolBar方法或屬性,您需要刪除編輯按鈕,但稍後保留,並將done按鈕放置到位。完成後逆轉交換。

您可以通過toolbar.items獲取UIToolBar的條目,它將是NSArray。然後你可以removeObjectAtIndex:刪除編輯按鈕。然後你可以insertObject:atIndex:添加你的完成按鈕。然後回到UIToolBarsetItems:animated

// Get current items 
NSMutableArray *temp = [toolBar.items mutableCopy]; 

// Check for editing, with your own variable, then insert/remove buttons 
if (/*Editing*/) { 
    [temp removeObject:editButton]; 
    [temp insertObject:doneButton atIndex:0]; 
} else { 
    [temp removeObject:doneButton]; 
    [temp insertObject:editButton atIndex:0]; 
} 

// Send back to your toolbar 
[toolBar setItems:temp animated:YES]; 
+0

如果我在uibarbutton中使用自定義按鈕,這仍然可以嗎?我在執行交換時如何將所有的細節(backgrnd圖像等)轉移到代碼中? – Josh

+0

無論你對UIBarButtonItem做了什麼,它都能正常工作。你所需要做的就是把它作爲一個變量或屬性來保存,這樣它就不會被釋放。 –

+0

好吧,我會給它一個感謝:) – Josh

相關問題