显示键盘时禁用按钮

时间:2015-04-02 15:27:09

标签: ios swift xcode6

我制作了一个包含UITextField和UITableView的应用程序。 如果用户在UITextField中输入一些文本,我想禁用UITableView的所有功能/按钮。因此,如果用户使用UITextField,则无法向左滑过UITableViewCell(通常会出现删除按钮)。因此,用户只能在显示键盘时使用UITextFiled。

我该怎么做?

3 个答案:

答案 0 :(得分:4)

使用textfield委托方法

- (void)textFieldDidBeginEditing:(UITextField *)textField{
         //check if(textfield==yourtextfield) if you have more than one textfields
           tableView.userInteractionEnabled = NO;
}


- (void)textFieldDidEndEditing:(UITextField *)textField{
    tableView.userInteractionEnabled = YES;
}

答案 1 :(得分:1)

您可以在NSNotificationCenter中调用keyboardWillShow(和WillHide)通知时禁用按钮。

只需在YES调用的选择器中调用KeyboardWillHide,在另一个

调用NO
- (void)keyboardWillShow:(NSNotification *)notification {
    //disable button here
}

答案 2 :(得分:0)

在UITextField的委托方法中尝试此操作:

- (BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string 
{    
if (theTextField == yourTextField){    
   yourButtonOutlet.userInteractionEnabled = NO;    
 }
}