0

UIToolbarキーボードが表示されたときにキーボードの上に置かれ、事前にフォーマットされたテキストを挿入するために使用するカスタムがあります。私の問題は、フォーマット済みのテキストの潜在的なユーザーである が1 つとUITextView2 つあることです。UITextField

ボタンが を呼び出すとき、IBActionどの要素にフォーカスがあり、どの要素が であるかをどのように判断できfirstResponderますか?

私の質問を賢くする試み#2:

フォーカス[textElement selectedRange];のあるUITextFieldorを呼び出す必要があります。UITextViewどのビュークラスであるかtextElementを問わないように宣言するにはどうすればよいですか?UIText*

私が次のことをすると...

UIView *textElement = [self my_method_of_getting_first_responder];
NSRange range = [textElement selectedRange];

私はもちろん

UIView はセレクター 'selectedRange' を宣言していません

ありがとう!

4

1 に答える 1

1

質問を理解した場合は、ボタンをクリックしてから、現在アクティブなテキストフィールドへのリンクを取得しますか?次に、UIViewのカテゴリを使用する必要があります。

@implementation UIView (FindFirstResponder)
- (BOOL)findFirstResponder
{
    if (self.isFirstResponder) {
        return YES;     
    }
    for (UIView *subView in self.subviews) {
        if ([subView findFirstResponder]) {
            return YES;
        }
    }
    return NO;
}
@end

ビューコントローラからUIWindowでこのカテゴリメソッドを呼び出すことができます。ウィンドウを使用するにはUIWindow *window= self.view.window;

于 2013-02-03T00:00:08.530 に答える