2010-12-28 9 views
1

コンテキスト: 自分のカスタムメニュー項目をUIMenuControllerに追加しました。すべて正常に動作し、canPerformActionはカスタム項目がタップされたときに期待通りに呼び出されます。UIMenuControllerの親送信者を取得する方法

私の問題は次のとおりです。 メニューが表示されているビュー内にいくつかのテキストビューがあります。 カスタムメニューがタップされたときに現在のテキストビュー から現在選択されているテキストを取得したいと思っています。

送信者がメニューをホストしている/表示しているオブジェクトではなく、メニューコントローラ自体を表示できないため、できません。

メニューが表示されている送信者/ UI_control(親?)を見つけるにはどうすればよいですか?

答えて

1

動作するようになっている方法は次のとおりです。

  1. あなたは通常の方法でカスタムメニューを追加します。
  2. canPerformActionでは、有効/表示するアクションをフィルタリングします。
  3. アクションが発生すると、現在のレスポンダをチェックしてロジックを適用します。

canPerformAction withSenderは、カスタムメニューを視覚的にホストしている現在のコントロールを返すことはありません。

すべてのビューをループする最初のレスポンダが誰であるかを調べ、isFirstResponderプロパティを確認できます。または、あなたがそれらの2つのクイックチェックを行うことができる場合は、カップルを持っている場合。

// called by canPerformAction 
    if ([myTextBox isFirstResponder]) { 
    NSLog(@"Found it!", nil); 
} 
+0

私はすぐに自分の質問に答えました。他人が間違った場所を見たり間違った質問をしたりするのを助けるかもしれない。 – amok

関連する問題