如何在iOS中查找所选文本字段

时间:2014-06-25 06:40:42

标签: ios iphone objective-c ipad uistoryboard

我正在使用故事板开发一个iPad应用程序。在我的应用程序中,我有弹出视图,有两个文本字段和一个按钮。我需要做的意思是,如果我单击按钮,则需要在所选文本框中显示一个文本。我如何找到目前情况下选择的文本框?下面给出示例代码请帮我完成功能。

- (IBAction)buttonPressed:(id)sender {
     if(//Here i need to set the condition for check selected text box is first){
         texbox1.text=@"User";
      }
      else{
         textbox2.text =@"Admin";
      }
}

5 个答案:

答案 0 :(得分:4)

  1. Tag设置为textfields

  2. 在班级中实施UITextFieldDelegate

  3. 使用此方法

    - (void)textFieldDidBeginEditing:(UITextField *)textField {
        if (textField.tag == your tag) {
            selectedTextField = textField; //selectedTextField is an UITextfield variable
        }
    }
    
  4. IBAction

    中使用它
    - (IBAction)buttonPressed:(UIButton *)sender {
        selectedTextField.text = @"abc";
    }
    
  5. //编辑:StackOverFlow的代码功能有问题,无法正常显示

答案 1 :(得分:4)

- (IBAction)buttonPressed:(id)sender {

   if([textbox1 isFirstResponder]){
       //Cursor on textbox1
       texbox1.text=@"User";
   }
   else if([textbox2 isFirstResponder]){
      //Cursor on textbox2
       textbox2.text =@"Admin";
   }
   else{

       NSLog(@"None of them have cursor");
   }
}

答案 2 :(得分:0)

如果我理解你的问题,我认为以下代码就是你想要的: -

- (IBAction)buttonPressed:(UIButton *)sender {

    if(self.texbox1.isFirstResponder){
        self.texbox1.text=@"User";
        [self.texbox1 resignFirstResponder];
    }

    if(self.texbox2.isFirstResponder){
        self.texbox2.text=@"Admin";
        [self.texbox2 resignFirstResponder];
    }
}

我不确定你为什么要如上所述实施,因为它有点滑稽。

答案 3 :(得分:0)

UITextFieldUIResponder的子类,允许您执行包括isFirstResponder在内的检查,这可能是您要查找的内容。但是,您需要了解响应者链的工作原理以及这是否是您尝试检测的行为。

答案 4 :(得分:0)

使用isFirstResponder检查哪个文本框处于活动状态。

- (IBAction)buttonPressed:(id)sender {
     if([textbox1 isFirstResponder]){
         texbox1.text=@"User";
      }
      else if([textbox2 isFirstResponder]) {
         textbox2.text =@"Admin";
      } else {
         // What should happen when neither textbox1 nor textbox2 is active?
      }
}