仅在我们开始编辑文本时显示图像

时间:2017-05-12 07:12:57

标签: ios swift xcode

我有一个UIImage和TextField。当用户开始在TextField中写入时必须显示Image,当用户完成写入时,TextField UIImage必须隐藏。 怎么做?

我尝试的是:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setTitle("Your custom title");
}

3 个答案:

答案 0 :(得分:1)

试试这个

 func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    textField.background = UIImage(named: "focus.png")
    return true
}

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
    textField.background = UIImage(named: "nofocus.png")
    return true
}

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}

或在rightView / leftview上设置图像

textField.rightViewMode = .unlessEditing
textField.leftView = UIImageView(image: UIImage(named: "textfield_edit_icon.png"))

答案 1 :(得分:0)

您可以将代理设置为UITextfield,在这里您可以获得某些委托方法的通知: https://developer.apple.com/reference/uikit/uitextfielddelegate

在你的情况下,它是:

func textFieldDidBeginEditing(_ textField: UITextField)

https://developer.apple.com/reference/uikit/uitextfielddelegate/1619590-textfielddidbeginediting

在您的委托课程中实施此功能,您现在可以将此图像设置为在此方法中可见/不隐藏。

您也可以在"结束编辑":

上隐藏它
func textFieldDidEndEditing(_ textField: UITextField)

https://developer.apple.com/reference/uikit/uitextfielddelegate/1619591-textfielddidendediting

答案 2 :(得分:0)

试试这个。

将图像视图作为leftView添加到TextField。

并将textfield leftViewMode设置为.whileEditing

    let LeftView = UIImageView(image: UIImage(named: "yourImage")
    yourTextfield.leftView = LeftView
    yourTextfield.leftViewMode = .whileEditing