gpt4 book ai didi

ios - 按下 "Tab"键时多次调用 textFieldShouldBeginEditing

转载 作者:技术小花猫 更新时间:2023-10-29 10:40:03 30 4
gpt4 key购买 nike

我有一个表单屏幕,其中包含多个包含在 UITableView 中的输入字段。如果用户连接了蓝牙键盘,那么他就可以按“Tab”键。问题是每个文本字段都会多次调用 textFieldShouldBeginEditing 方法。这是正常行为吗?正常行为是,如果某个字段处于焦点状态并且用户按下 Tab 键,则光标应跳转到其他某个文本字段,因此 textFieldShouldBeginEditing 将仅被调用一次(对于此文本字段)。

看起来这个问题没有解决( post1 , post2 )。你们是忽略了这个问题的存在,还是已经找到了解决办法?

最佳答案

我有一个 UIViewController,我在其中收听 UITextFieldDelegate textFieldShouldBeginEditing 并且只对我的一个文本字段执行特殊操作。因此,当在蓝牙键盘上按下 Tab 键时,会触发特殊情况。

今天我终于找到了解决办法:

我正在为 Tab 键注册一个 keyCommand,然后让它使用 UIResponder 上的类别来查找 firstResponder(当前文本字段),然后通过委托(delegate)方法触发返回。

您首先需要此类别才能获得 firstResponder: https://stackoverflow.com/a/21330810/747369

然后只需注册keyCommand并获取当前的firstResponder。

- (void)viewDidLoad
{
[super viewDidLoad];

[self addKeyCommand:[UIKeyCommand keyCommandWithInput:@"\t" modifierFlags:0 action:@selector(tabKeyPressed:)]];
}

- (void)tabKeyPressed:(UIKeyCommand *)sender
{
id firstResponder = [UIResponder currentFirstResponder];
if ([firstResponder isKindOfClass:[UITextField class]])
{
UITextField *textField = (UITextField *)firstResponder;
// Call the delegate method or whatever you need
[self textFieldShouldReturn:textField];
}
}

关于ios - 按下 "Tab"键时多次调用 textFieldShouldBeginEditing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504883/

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