Objective c NSSearchField-显示包含结果的NSMenu

Objective c NSSearchField-显示包含结果的NSMenu,objective-c,cocoa,macos,Objective C,Cocoa,Macos,我正在试图弄清楚如何在我的搜索字段下面显示搜索结果。我想原因是我的程序从未收到消息 -(NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(int*)index; 所以我永远不能返回任何结果 但是,我确实收到了 - (void)c

我正在试图弄清楚如何在我的搜索字段下面显示搜索结果。我想原因是我的程序从未收到消息

-(NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(int*)index;
所以我永远不能返回任何结果

但是,我确实收到了

- (void)controlTextDidChange:(NSNotification *)obj;
- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector;

有可能是什么原因吗?我确实设置了代理。

您的代理将不会收到
完成:
消息,除非在文本字段的字段编辑器的某个点调用
完成
。在
controlTextDidChange:
中,您可以执行以下操作:

- (void)controlTextDidChange:(NSNotification *)note {

    NSTextView * fieldEditor = [[note userInfo] objectForKey:@"NSFieldEditor];

    [fieldEditor complete];
}

毫无疑问,您必须使其更加复杂(当您的代理返回完成列表时,
controlTextDidChange:
将再次调用,创建一个无限循环),但这应该可以让您开始了。

哦,天哪,我已经搜索了几个小时了。是的,这绝对是解决方案!谢谢!