2016-08-09 13 views
0

タップジェスチャーでテキストフィールドを非表示にします。 TextFieldを隠した後、タップジェスチャーが動作していないので、タップジェスチャーで隠しテキストフィールドを設定する

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ShowBASEURL)]; 
tap.numberOfTapsRequired = 3; 
[_txtBaseUrl addGestureRecognizer:tap]; 

- (void)ShowBASEURL 
{ 
    _txtBaseUrl.hidden = NO; 
} 


- (void)textFieldShouldEndEditing:(UITextField *)textField 
{ 
    _txtBaseUrl.hidden = YES; 
} 

それは働いていない。ここで

はコードです。 他の方法がありますか?

答えて

1

あなたは_txtBaseUrlインスタンスを非表示にしています。その時点でユーザーインタラクションは無効になります。ジェスチャーは機能しません。

変更このラインと

[_txtBaseUrl addGestureRecognizer:tap]; 

[self.view addGestureRecognizer:tap]; 

は、あなたのデリゲートメソッドをチェックしてみてください、あなたは、あなたが_txtBaseUrlインスタンスを隠している、textFieldShouldEndEditingで

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
_txtBaseUrl.hidden = YES; 

} 
1

として間違って割り当てます。ユーザーインタラクションはその時点で無効になります。したがって、ジェスチャーはこのケースでは動作しません。

2

あなたは_txtBaseUrlインスタンスを非表示にしています。ユーザーはそのために2つのオプションを選択します 1)その時点でユーザー対話が無効になります。ジェスチャーは機能しません。 2)あなたがそのよう_txtBaseUrlインスタンスに

コードを隠している:

- (void)ShowBASEURL { 

[_txtTesting resignFirstResponder]; 

// if hide the _txtBaseUrl 
_txtTesting.hidden = YES; 

// if not hide the _txtBaseUrl and gesture are disable 
// _txtTesting.hidden = NO; 
// _txtTesting.userInteractionEnabled = NO; 

}

関連する問題