>我有这个设置,我的NSWinow
有两个NSSearchFiled
,具有相对自动保存搜索历史,一个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];
没有运气,谷歌搜索也无济于事...骗子你帮我?
问完问题后,我尝试了"最后一个选项"......它奏效了!
这是- (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];