当前位置: 首页 > 面试题库 >

如何确定哪个文本字段处于活动状态

隗昀
2023-03-14
问题内容

我无法弄清楚哪个UITextField当前处于活动状态,因此如果它们在上单击“取消”,则可以清除其文本UIBarButtonItem。这是我的代码。有一个视图UIPickerViewUIToolBar和两个栏按钮的项目。取消项的操作只能清除其文本,我无法弄清楚如何获得正确的文本UITextField

我都尝试过这两个:

@IBAction func cancelText(sender: AnyObject) {


    if self.truckYear.editing == true{

        println("truckYear")

        clearText(self.truckYear)
    } else if self.truckMake.editing == true{

        clearText(self.truckMake)
    }
}
@IBAction func doneText(sender: AnyObject) {

    pickerView.hidden = true
}


func clearText(textField:UITextField){

    println("in clear text")

    textField.text = nil
}

和:

@IBAction func cancelText(sender: AnyObject) {


    if self.truckYear.isFirstResponder(){

        println("truckYear")

        clearText(self.truckYear)
    } else if self.truckMake.isFirstResponder(){

        clearText(self.truckMake)
    }
}
@IBAction func doneText(sender: AnyObject) {

    pickerView.hidden = true
}


func clearText(textField:UITextField){

    println("in clear text")

    textField.text = nil
}

问题答案:

您可以UITextField在类中声明一个属性,然后在中为它分配当前文本字段textFieldDidBeginEditing。然后,您可以在需要时随时调用此文本字段。

class ViewController : UIViewController, UITextFieldDelegate {

   var activeTextField = UITextField()

   // Assign the newly active text field to your activeTextField variable
   func textFieldDidBeginEditing(textField: UITextField) {

        self.activeTextField = textField
   }

   // Call activeTextField whenever you need to
   func anotherMethod() {

       // self.activeTextField.text is an optional, we safely unwrap it here
       if let activeTextFieldText = self.activeTextField.text {
             print("Active text field's text: \(activeTextFieldText)")
             return;
       }

       print("Active text field is empty")
   }
}


 类似资料:
  • 我如何知道我的系统中哪个选项卡处于活动状态 public View oncreate View(LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState)函数??? 以下代码仅适用于拳头导航,但之后在每个选项卡中,它都会显示最后一个布局。 我认为问题出在< code>onCreateView函数中,我无法获取活动选项卡的位置。 我怎

  • 一个应用程序正在iPhone上运行,用户点击home按钮一次,应用程序就会进入后台 如何通过点击本地通知而不是应用程序图标来确定该应用程序处于活动状态。

  • 问题内容: 从MDN for NodeList: 在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes处于活动状态: 在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。 所以....有点烦!是否有任何关于哪些

  • 问题内容: 如果URL已经激活,如何禁用反应路由器?例如,如果我的URL不会因单击而改变,我想完全阻止单击或呈现而不是。 我想到的唯一解决方案是使用(或)和setting ,但是我想使用一种可在IE9和IE10中使用的解决方案。 问题答案: 我不会问您为什么要这种行为,但是我想您可以包装在自己的自定义链接组件中。 (ES6,但您可能已经有了大致的想法…)

  • 问题内容: 对于每个请求,您可以通过几种不同的方式来判断会话是否已经开始,例如: 要么: 但是,如果您启动会话然后将其关闭,它们都将失败。将返回前一个会话的ID,同时将对其进行定义。同样,如果您已经有一个活动会话,则此时调用将生成一个。有没有一种明智的方法来检查会话当前是否处于活动状态,而不必诉诸输出缓冲,关闭运算符()或其他类似hacky的方法? 编辑8/29/2011:向PHP 5.4添加了新

  • 那么我应该做些什么来实现这个目标呢?如有任何帮助/线索,请提前感谢