NSTextField验证和NSSearchField将其值保存到NSButton点击的近期历史记录中

时间:2012-10-03 16:26:16

标签: xcode cocoa nstextfield nsbutton nssearchfield

我有此设置,我的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];

没有运气,谷歌搜索也没有帮助......你帮助我吗?

1 个答案:

答案 0 :(得分: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];