0

UITableView多数の を含むstaticがありますUITextField。ユーザーがテキスト フィールドの外側をタップすると、キーボードを閉じたいと思います。

my のトップレベルUIViewControllerは aUITableViewと aUITabBarItemです。ステータスバーのタップも処理する必要があると思います。

それらへのタッチを登録する方法がわかりません(テキストフィールドのいずれかを強制的に呼び出すことができるようにresignFirstResponder.

UIResponderを処理する必要があるかもしれないと思いました

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

テーブルビューとタブバーのアイテムですが、どちらもUIControls ではないので使用できません

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

UIWindowUIResponderですが、タッチイベントを取得できないようです。

どんな助けでも大歓迎です、CS

4

2 に答える 2

0

テキストフィールドが1つある場合は、それが属するUIViewControllerにタッチを追加し、このようにします...

- (void)touchesBegan ... cant remember full name
{
    if ([touches count] > 1) {
        return;
    }

    UITouch *touch = [touches anyObject];

    CGPoint touchPoint = [touch locationInView self.view];

    if (!CGRectContainsPoint(self.textField.frame, touchPoint)) {
        //touch originated outside textField.

        [textField resignFirstResponder];
    }
}

複数のテキスト フィールドがある場合は、if 内の各フィールドに対して CGRectContainsPoint チェックを実行します。

于 2012-11-19T15:47:18.720 に答える