我正在创造一个智能感知风格酥料饼,显示谁正在输入到文本字段什么语法有效用户。有谁知道如何显示NSPopover而不让它聚焦,以便用户可以继续输入到textField中?该酥料饼是由controlTextDidChange触发:显示NSPopover没有焦点
- (void) controlTextDidChange:(NSNotification *)obj
{
NSTextField *field = [obj object];
NSString *command = [field stringValue];
if ([[command substringFromIndex: command.length - 1] isEqualToString: @"#"]){
CompletionMenuController *completionController = [[CompletionMenuController alloc] initWithNibName: @"CompletionMenuController" bundle:[NSBundle mainBundle]];
completionMenuPopover = [[NSPopoverInformation alloc] init];
[completionMenuPopover setContentViewController: completionController];
[completionMenuPopover setContentSize: completionController.view.frame.size];
[completionMenuPopover setBehavior: NSPopoverBehaviorTransient];
[completionMenuPopover setAppearance: NSPopoverAppearanceHUD];
[completionMenuPopover showRelativeToRect:[_commandBar frame] ofView:_commandBar preferredEdge:NSMaxYEdge];
}
}
'[textView becomeFirstResponder];'显示弹出窗口后? – nhgrif
@nhgrif请阅读关于'-becomeFirstResponder'的文档。除此之外,将焦点重新放在文本视图上并不等同于不失焦点。 –
我发布的问题评论,而不是一个答案。我不知道它是否有用,因此它不作为答案发布。这是一段非常简单的代码,用于输入并查看它是否有效,这是我在发布此问题之前尝试的第一件事。提问者没有提到尝试它,所以我认为这值得一试。 – nhgrif