0

ツールバーのボタンを置き換えるためにiOS5.1でうまく機能する次のコードがあります。

[(UIToolbar*)toolbar setItems:itemsArray]; 

しかし、コンパイルされたアプリケーションはiOS 6では動作しません。iOS6をサポートするxXode4.5でソースをコンパイルしましたが、エラーは同じです。

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) 

問題を解決する方法は?

リンクされた問題:iOS 6のUIWebViewキーボードの下にあるツールバーのボタンを置き換える方法は?

助けてくれてありがとう!

4

3 に答える 3

1

それがUIToolbarもはや存在しないかもしれないとしても、あなたは明らかに存在しないメソッドを呼び出そうとしている(または「メッセージを送信する」)ことを試みています。解決策は、それを行わないことです。十分に努力すると、メソッドは何もないところから再表示されないからです。

この文書化されていないタイプで別のフィッティング方法を見つけることによって、あなたがやろうとしていることを続けていく別の方法があるかもしれません。しかし、たぶんそれもいつかこのように壊れてしまうでしょう。彼らが何かを文書化していない場合、はい、それはあなたがまだそれを使用できることを意味します(少なくともレビューのためにそれを送るまで)、しかしそれはまたそれがいつでも壊れるかもしれないことを意味します。

長期的な解決策は、自分で制御できる独自のインターフェイスを表示する方法を見つけることです。どこに統合したいかを知っているので、それはとても簡単ではないと思います。数日前にStackOverflowで、タッチを検出し、編集を停止してUIを自分で引き継ぐという別の質問を見たと思います(ただし、カーソルの配置、メニューのコピー/貼り付けなどではうまく機能しません) 。

いずれにせよ、それほど脆弱ではない新しいソリューションを考案する必要があります。

于 2012-09-27T14:15:03.327 に答える
0

この特定の場合のツールバーは実際にはUIToolbarですか?キャストの問題だと思います。

私は私のクラスの1つで次のことをします、そしてそれは間違いなくiOS6で動作します

NSMutableArray *items = [NSMutableArray arrayWithArray: self.topToolbar.items];
[items insertObject:barButtonItem
            atIndex:0];
self.topToolbar.items = items;
于 2012-09-27T13:40:32.890 に答える
0

UIWebFormAccessoryは、iOS6のUIToolbarではありません。フォームアクセサリツールバーをいじりたい場合は、関連する質問に対する「findVirginWebKeyboardToolbar」の回答を確認してください:https ://stackoverflow.com/a/12865353/199267

于 2012-10-12T18:59:44.480 に答える