2012-09-27 49 views
0

我有以下的代碼,適用於iOS 5.1好更換工具欄上的按鈕工作。我已經編譯xXode 4.5源與iOS 6支持,但錯誤是一樣的:方法UIToolbar.setItems不會在iOS 6

2012-09-27 16:31:13.537 Linux[2633:907] -[UIWebFormAccessory setItems:]: unrecognized selector sent to instance 0x1d886ad0 
2012-09-27 16:31:13.540 Linux[2633:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWebFormAccessory setItems:]: unrecognized selector sent to instance 0x1d886ad0' 
*** First throw call stack: 
(0x361032a3 0x3441397f 0x36106e07 0x36105531 0x3605cf68 0x775c5 0x33bbda6f 0x360d85df 0x360d8291 0x360d6f01 0x36049ebd 0x36049d49 0x365862eb 0x37428301 0x7538d 0x75328) 
libc++abi.dylib: terminate called throwing an exception 
(lldb) 

如何解決這個問題?

鏈接問題:How to replace buttons on a toolbar under UIWebView keyboard on iOS 6?

非常感謝您的幫助!

回答

0

你確定這個特定情況下的工具欄實際上是一個UIToolbar嗎?我想這是一個鑄造問題。

我做的我類之一以下,而且在iOS6的肯定工程

NSMutableArray *items = [NSMutableArray arrayWithArray: self.topToolbar.items]; 
[items insertObject:barButtonItem 
      atIndex:0]; 
self.topToolbar.items = items; 
+0

它是'UIWebFormAccessory' - UIWebView上鍵盤下的一個工具欄。 – Dmitry

+0

啊錯過了,在你原來的帖子莫名其妙,我的不好。看起來像是一個有點無證的類(搜索時只有不到300個點擊);不是這樣有幫助,但我猜你並不是真的*應該使用它。 – cscott530

+0

我只想替換UIWebView工具欄上未使用的按鈕...請看http://stackoverflow.com/questions/12622931/how-to-replace-buttons-on-a-toolbar-under-uiwebview-on-ios- 6 – Dmitry

1

即使它是一個UIToolbar,這可能不是任何時間越長,你顯然試圖調用方法(或「發送消息」)不存在。解決方法是不要這樣做,因爲一旦你足夠努力,該方法不會再次出現。

可能出現這種情況,還有另一種方法可以通過在這種無證類型上找到另一種擬合方法來繼續做你正在嘗試做的事情。但是,也許這樣也會在某一天破裂,就像剛剛破裂一樣。如果他們沒有記錄某些內容,是的,這意味着您仍然可以使用它(至少在您發送它進行審查之前),但這也意味着它可能隨時崩潰。

一個長期的解決方案是找出一種方法來調出你自己可以控制自己的界面。知道你想要整合到哪裏,我不認爲這很容易。我想我在前幾天看到Stack Overflow的另一個問題,那就是檢測觸摸,停止編輯並自己接管UI(雖然它在光標定位,複製/粘貼菜單等方面表現不佳) 。

無論採用哪種方式,您都必須設計出一種不那麼脆弱的新解決方案。

+0

是的,在iOS6上它不再是UIToolbar。 – strawtarget