gpt4 book ai didi

ios - 键盘没有响应 resignFirstResponder

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:02 25 4
gpt4 key购买 nike

我不想显示键盘,而是想在选择文本字段时显示弹出 View (我的代码在底部)。如果键盘没有显示,那么一切正常。但是,如果显示键盘然后选择文本字段,则键盘不会被关闭,firstResponders 一定在某个地方迷路了,但我不知道在哪里。有人对此有解决方案吗?

我的文本框:

    self.startDateTextField = [[UITextField alloc] initWithFrame:CGRectMake(79, 148, 138, 27)];
[self.startDateTextField setBorderStyle:UITextBorderStyleRoundedRect];
[self.startDateTextField setDelegate:delegate];
[self.startDateTextField addTarget:delegate action:@selector(editStartDate:) forControlEvents:UIControlEventEditingDidBegin];
[popoverWrapper addSubview:self.startDateTextField];

并且在 editStartDate: 我有:

-(void)editStartDate:(UITextField *)textField {

[textField resignFirstResponder];

DatePickerVC *datePickerVC = [[DatePickerVC alloc] init];
datePickerVC.delegate = self;

self.popoverController = [[UIPopoverController alloc] initWithContentViewController:datePickerVC];
[self.popoverController setDelegate:self];

[self.popoverController presentPopoverFromRect:CGRectMake(0, 0, 5, 5) inView:textField permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}

最佳答案

这很容易做到,使用您的 UITextFieldDelegate 方法,特别是 UITextFieldShouldBeginEditing 并返回 NO 并执行代码以显示弹出窗口。这样,键盘就不会一开始就显示出来。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[self.view endEditing:YES]; // added this in for case when keyboard was already on screen
[self editStartDate:textField];
return NO;
}

要使其正常工作,请确保将 textField 的委托(delegate)设置为 self( View Controller ),并在 editStartDate 方法中删除 resignFirstResponder 调用。

关于ios - 键盘没有响应 resignFirstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10051402/

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