0

我有这个设置,我NSWinow有两个NSSearchFiled带有相对自动保存搜索历史的 s,一个NSTextField和一个NSButton.

NSSearchFiled必须自动保存搜索(当用户按下“Enter”键时才能正常工作) NSTextField需要验证并保存到用户首选项(通过它action)。

问题是,如果我专注于NSSearchFiled并单击NSButton该字符串不会自动保存到最近,如果我专注于NSTextField并单击NSButton该值未验证并保存到用户首选项...

我在 NSButton 操作中试过这个:

// SearchF_Name is of NSSearchFiled
[SearchF_Name sendAction:SearchF_Name.action to:SearchF_Name.target];

没有运气,谷歌搜索也无济于事......你帮我吗?

4

1 回答 1

0

问完这个问题后,我尝试了“最后一个选项”……它奏效了!

这是代码- (IBAction)Btn_SearchAction:(id)sender

NSResponder *firstResponder = [[NSApp keyWindow] firstResponder];
if ([firstResponder isKindOfClass:[NSText class]] && [(NSText *)firstResponder delegate] == TextF_ResultLimit) {
    NSLog(@"SearchDelegate::Btn_SearchAction TextF_ResultLimit has focus, let's save it's value");
    [TextF_ResultLimit performClick:self];
}

NSLog(@"SearchDelegate::Btn_SearchAction SearchF_Name saving search value to recent history");
[SearchF_Name performClick:self];
于 2012-10-03T16:47:59.767 回答