在Tap手势上设置隐藏的textField

时间:2016-08-09 05:57:16

标签: ios objective-c uitapgesturerecognizer

在点按手势上隐藏并显示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;
}

它无法正常工作,因为隐藏了textField后,点按手势无效。 还有其他办法吗?

3 个答案:

答案 0 :(得分: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;

}

答案 1 :(得分:1)

  

您正在隐藏_txtBaseUrl实例。此时将禁用用户交互.Gesture将无效。

更改此行并尝试

array_4x4 = (0..<4).map { i in (0..<4).map { j in array_4x4[j][i] } }

[_txtBaseUrl addGestureRecognizer:tap];

检查您指定为错误的委托方法

[self.view addGestureRecognizer:tap];

答案 2 :(得分:1)

在textFieldShouldEndEditing中,您隐藏了_txtBaseUrl实例。此时将禁用用户交互。因此,在这种情况下,手势不起作用。