3

UIMenuControllerUITextView のサブクラスを作成しましたが、いくつかのボタンを追加してデフォルトを拡張したいと考えています。拡張機能の実行はまったく問題ありません。..の共有インスタンスの配列をいくつか追加する必要があるUIMenuItemだけmenuItemsですUIMenuController

私の質問は次のとおりです。この操作はどこで実行しますか? MenuController はシングルトン実装であるため、変更を加えるたびに、メニューをサポートする他のすべてのビューに影響します。では、余分なメニュー項目をどこに追加し、後でどこから削除するのでしょうか? viewWillAppearUIViewController のメソッドに相当するものを探しています。

または、心配しすぎて、UITextViewサブクラスを含むビューのビューコントローラーに実装することは完全に良い習慣ですか? ただし、これは、私のクラスをサブビューとして含むすべてのビュー コントローラーが同じコードを実装する必要があることを意味します。より良い方法はありますか?

編集:もちろん、別のオプションは、クラスのセレクターを一意に保ち、他のすべてのカスタムビューNOをセレクターに返すことです-respondsToSelector:。これは私にとってこれまでのところ最良の解決策のようです。

ベストプラクティスは何ですか?

4

2 に答える 2

2

アプリデリゲートに項目を追加するとうまくいくことがわかりました。もちろん、MenuController をサポートする他のビューが のNO特定のセレクターに対して返されることを確認する必要があります-respondsToSelector:

于 2010-11-05T16:44:23.410 に答える
0

良い質問。ベストプラクティスについてはわかりません。

それを変更するには、おそらく viewDidAppear と viewWillDisappear を使用する必要があります。

于 2010-11-03T20:37:18.563 に答える