4

UITableView のサブビューとして 2 つのテキストビューがありinputAccessoryView、1 つは編集できませんが、ハイライトして使用 (コピー | 定義) し、もう 1 つは 内にありinputAccessoryViewます。

問題は、編集不可能な textView を強調表示すると、入力アクセサリ ビューが表示されることです... (なぜ!?) tableView が突然最初の応答者になったかのように、サブビューの 1 つが最初の応答者になったためだと思います。問題は、この編集不可能な textView を tableViews サブビューから取り出す必要がありますか、それとも強調表示されたときに inputAccessoryView のポップアップを抑制する方法がありますか? 後者が好ましいでしょう。

-(UITextView *)textView
{
    if (!_textView) {

        _textView = [[UITextView alloc]initWithFrame:CGRectZero];
        //_textView.delegate = self;
        _textView.font = [UIFont questionDemiBoldFontOfSize:36.0f];
        _textView.backgroundColor = [UIColor clearColor];
        _textView.editable = NO;
        _textView.scrollEnabled = NO;
        _textView.textColor = [UIColor whiteColor];
        _textView.tintColor = [UIColor whiteColor];
        _textView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin;

    }

    return _textView;
}
4

2 に答える 2

0

追加してこれを修正しました

- (UIView *)inputAccessoryView
{
    if (self.textView.isFirstResponder)
        return nil;

    return self.accessoryView;
}

明らかに、場合によっては、accessoryView を元に戻す前に、編集していない textView で最初にrejectFirstResponder を手動で呼び出す必要があるかもしれません.. それでも、それはかなりきれいで、将来誰かを助けるかもしれません.

于 2015-05-02T09:40:37.607 に答える