gpt4 book ai didi

ios - 在键入时获取 UITextField 中的整个文本的简单方法是什么?

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

当用户在 UITextField 中输入内容时,我需要实时了解文本字段中的整个字符串。我这样做的方法是听一个 UITextFieldDelegate打回来。此回调的问题在于它是在实际插入附加文本之前触发的。由于这个和其他各种极端情况,我需要编写这段非常复杂的代码。有没有更简单(更少代码)的方法来做同样的事情?

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString* entireString = nil;

if (string.length == 0) {
// When hitting backspace, 'string' will be the empty string.
entireString = [textField.text substringWithRange:NSMakeRange(0, textField.text.length - 1)];
} else if (string.length > 1) {
// Autocompleting a single word and then hitting enter. For example,
// type in "test" and it will suggest "Test". Hit enter and 'string'
// will be "Test".
entireString = string;
} else {
// Regular typing of an additional character
entireString = [textField.text stringByAppendingString:string];
}

NSLog(@"Entire String = '%@'", entireString);

return YES;
}

最佳答案

我什至不会与代表打交道。只需使用 UITextFieldTextDidChangeNotification 即可在事后通知更改。然后您不必担心将更改附加到字符串,您可以访问整个文本。

[[NSNotificationCenter defaultCenter] addObserverForName:UITextFieldTextDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
NSString *string = someTextFieldReference.text;
}];

或者正如@warpedspeed 链接后的答案中所指出的,您可以只为文本字段的编辑更改控制事件添加一个目标,如下所示:

[myTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];


- (void)textFieldDidChange:(UITextField *)sender
{
NSLog(@"%@",sender.text);
}

关于ios - 在键入时获取 UITextField 中的整个文本的简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523103/

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