gpt4 book ai didi

iOS 7 - 检测哪个 textField 从另一个函数中突出显示

转载 作者:行者123 更新时间:2023-11-29 03:12:29 25 4
gpt4 key购买 nike

抱歉,过去几个小时我一直在解决这个问题。我在应用程序中使用 MLPAutocomplete 类作为自动完成文本字段。我在实现图书馆方面没有问题。然而,就我而言,我有四个文本字段和 implementation that was described in the gitHub没有描述如何实现具有多个文本字段的库。因此,为了向当前使用的文本字段提供正确的字符串数组,需要检查突出显示四个文本字段中的哪一个。这是为自动完成文本字段提供数组的函数。

我基本上做的是,在我的 viewDidLoad 方法中,我为四个 TextView 初始化四个数组,并在下面的函数 possiblecompleteionsForString 中,我所做的是我根据文本字段是否突出显示采用 bool 值。基于此,我然后将正确的数组分配给完成数组(完成数组是文本字段中显示的数组)。但是,我注意到这在 100% 的时间里都不起作用。在某些情况下,我的应用程序会显示不同的数组。例如,我为 brandInput 文本字段设置了一个文本,并尝试为 partInput 文本字段输入内容,结果日志显示以下内容:

2014-02-28 16:57:51.295 Database[7352:3f03] brand input Status active
2014-02-28 16:57:52.154 Database[7352:3f03] brand input Status active
2014-02-28 16:57:57.463 Database[7352:3f03] part input Status active
2014-02-28 16:57:57.465 Database[7352:3f03] brand input Status active

它设法检测到 brandInput textField 处于事件状态,然后它还看到我切换到了 partInput textField。但是,由于未知原因,它仍然作为事件输入到 brandInput,给我一个错误的数组。

这是代码。

- (void)autoCompleteTextField:(MLPAutoCompleteTextField *)textField
possibleCompletionsForString:(NSString *)string
completionHandler:(void (^)(NSArray *))handler{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_async(queue, ^{

NSMutableArray *completions = [[NSMutableArray alloc] init];
[completions removeAllObjects];

BOOL partInputStatus = partInput.highlighted;
BOOL brandInputStatus = brandInput.highlighted;
BOOL barcodeInputStatus = barcodeInput.highlighted;
BOOL itemNameInputStatus = itemNameInput.highlighted;

if(partInputStatus){
NSLog(@"part input Status active");
completions = [self part];
}

if(brandInputStatus){
NSLog(@"brand input Status active");
completions = [self brand];
}

if(barcodeInputStatus){
NSLog(@"barcode input Status active");
completions = [self barcode];
}

if(itemNameInputStatus){
NSLog(@"itemname input Status active");
completions = [self itemName];
}

handler(completions);
});
}

我该怎么做?我认为将 brand 标记为非事件不会起作用,因为 Boolean 变量会在函数开始时重新初始化。

有没有其他方法可以检测哪个 textField 处于事件状态?我已经看到了一些解决方案,但是,那些是委托(delegate)函数,我认为我不能从我的函数中调用它们。

非常感谢任何帮助。谢谢。

最佳答案

这可能适合您的情况:BOOL partInputStatus = [partInput canResignFirstResponder];

BOOL partInputStatus = [partInput isFirstResponder]; 按照 Matthias 的建议

如果输入字段获得焦点(用户当前正在编辑它),它可以放弃它的第一响应者状态(即关闭键盘并转到它的正常状态)。

关于iOS 7 - 检测哪个 textField 从另一个函数中突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22090710/

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