我根据您想要手动指定帧大小并且不使用约束的先前评论做出假设。
首先,您需要添加UITextFieldDelegate
到您的 viewController。
这在你的 VC 课程开始时是这样完成的:
class yourViewControllerName: UIViewController, UITextFieldDelegate {
然后你想指定你的代表UITextField
,(最有可能在viewDidLoad
)
yourTextFieldName.delegate = self
现在您可以使用 textFieldDelegate 函数了。您正在寻找的可能是这样的:
func textFieldDidBeginEditing(textField: UITextField) -> Bool {
lblhello.frame = CGRectMake(160, 200, 60, 40)
return true
}
如果一切设置正确,那么lblhello
用户开始编辑您的UITextField
.
我经常听到人们说这不起作用的一个常见问题。是由 中指定的标签引起的viewDidLoad()
。大多数时候你想在之前声明标签viewDidLoad()
,否则像这样的函数无法访问它。
如果您想在之后将其移回原来的位置。你做的几乎和你做的一样,textFieldDidBeginEditing
只是你textFieldDidEndEditing
改用了。
但是,在旁注中。我确实建议习惯于使用约束,而不是为这样的事情设置框架。