gpt4 book ai didi

ios - 由于某种原因,方法 DidBeginEditing : (UITextField *)textfield is not working

转载 作者:行者123 更新时间:2023-11-28 18:22:10 25 4
gpt4 key购买 nike

我试图在键盘显示时向上移动 View ,这样它就不会覆盖屏幕,但由于某种原因,它的 -(void)DidBeginEditing: (UITextField *)textfield 不是工作。

- (void)textFieldDidBeginEditing:(UITextField *)ga1
{
/* should move views */
self.view.center = CGPointMake(self.view.center.x, self.view.center.y + 220);
}

- (void)textFieldDidEndEditing:(UITextField *)ga1
{
/* should move views */
self.view.center = CGPointMake(self.view.center.x, self.view.center.y - 220);

}

它也没有进入方法,谁能告诉我为什么?

最佳答案

在类的接口(interface)中添加行,因此在 .m 文件中,您可以将其放在 @implementation... 的上方

@interface MyClassName () <UITextFieldDelegate>
// properties can also go here
// for example dragging the IBOutlet for the textfield from the storyboard
@end

然后您在 viewDidLoad 中应该像这样设置 UITextField 的委托(delegate)...

-(void)viewDidLoad {
// whatever code
self.textField.delegate = self;
}

或者,您可以在 Storyboard 中通过单击文本字段并将指示器拖动到下方栏中的 View Controller 类图标(最左侧的图标)来完成此操作,而且更简洁。

此外,为什么在您的实现“ga1”中调用 textField 的参数?你应该称之为最佳实践

 - (void)textFieldDidBeginEditing:(UITextField *)textField

最后要注意的是,如果您有多个文本字段,您应该按照上述方式为每个文本字段设置委托(delegate)。这就是 Storyboard 的实现方式“更简洁”的原因,因为它可以避免在代码中有多个委托(delegate)声明。

关于ios - 由于某种原因,方法 DidBeginEditing : (UITextField *)textfield is not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com