gpt4 book ai didi

Cocoa:阻止字段编辑器按空格键自动完成

转载 作者:行者123 更新时间:2023-12-03 16:13:36 24 4
gpt4 key购买 nike

我有一个自定义 View ,其中包含多个 NSTextField 控件,我想为其提供自定义自动完成功能,并且我已使用 NSTextFieldDelegate 协议(protocol)成功实现了所有这些。自动完成是全名或地名,具体取决于正在编辑的文本字段。

问题是自动完成几乎总是包含空格字符,因此如果用户键入与建议匹配的内容,但不想接受该建议,则当用户按下时,字段编辑器将接受该建议空格键。我希望字段编辑器仅使用 Tab 键接受建议。

据我了解,这将涉及对 NSTextView 进行子类化以提供自定义字段编辑器,这是 documented by Apple作为可接受的方式,但是我不清楚我需要重写哪些方法以及重写的方法需要做什么,才能得到我想要的东西。

谁能建议如何实现这一点?

最佳答案

我承认,在I discovered an acceptable answer via Google-fu.之前,我已经摸索这个问题相当长一段时间了。魔法代码,公然从原始回答者那里窃取:

@interface MLFieldEditor : NSTextView @end

@implementation MLFieldEditor


- (void)insertCompletion:(NSString *)word forPartialWordRange:(NSRange)charRange movement:(NSInteger)movement isFinal:(BOOL)flag {
// suppress completion if user types a space
if (movement == NSRightTextMovement) return;

// show full replacements
if (charRange.location != 0) {
charRange.length += charRange.location;
charRange.location = 0;
}

[super insertCompletion:word forPartialWordRange:charRange movement:movement isFinal:flag];

if (movement == NSReturnTextMovement)
{
[[NSNotificationCenter defaultCenter] postNotificationName:MLSearchFieldAutocompleted object:self userInfo:nil];
} }

@end

(Additional reference)

关于Cocoa:阻止字段编辑器按空格键自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819378/

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