gpt4 book ai didi

objective-c - NSTextField 自动完成方法

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:36 25 4
gpt4 key购买 nike

我在触发 NSTextfield 的 complete: 方法时遇到问题。

现在我可以使用 @distinctUnionOfObjects(删除数组重复项的绝妙方法)从文本字段创建一个不同的名称数组,现在我可以使用以下方法发回此文本字段的自动完成:
- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)PartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index

但是,这种方法不是自动的,我必须在数据输入期间按 ESC 按钮弹出文本字段的自动完成建议。

我在这里搜索并找到了一些对我来说没有意义的示例。

小问题:是否有使用 NSTexfields 委托(delegate) 的任何方法,例如 controlDidChanged 或类似的方法来更轻松、更清晰地执行此操作?

我只是混淆了 nstextview 的 complete: 方法。

最佳答案

我不建议复制整个字符串。这对你的情况来说没问题,但如果你对大型文本文件使用自动完成,那么你将遇到各种性能和内存问题。您可以只跟踪您是否正在进行更新。如果您有多个 TextView ,您可以为 isCompleting 变量创建一个字典。

- (void) controlTextDidChange: (NSNotification *)note {
NSTextView * fieldEditor = [[note userInfo] objectForKey:@"NSFieldEditor"];

if (!isCompleting) {
isCompleting = YES;
[fieldEditor complete:nil];
isCompleting = NO;
}
}

关于objective-c - NSTextField 自动完成方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404379/

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