NSTextField-Validierung und NSSearchField speichern ihren Wert beim Klicken auf NSButton im aktuellen Verlauf
-
13-12-2019 - |
Frage
Ich habe dieses Setup, mein NSWinow
hat zwei NSSearchFiled
s mit relativer automatisch gespeicherter Suchhistorie, eine NSTextField
und ein NSButton
.
NSSearchFiled
Die Suche muss automatisch gespeichert werden (was funktioniert, wenn der Benutzer die Eingabetaste drückt).NSTextField
muss validiert und in den Benutzereinstellungen gespeichert werden (durch it's action
).
Das Problem ist, wenn ich mich darauf konzentriere NSSearchFiled
und klicken Sie auf NSButton
Die Zeichenfolge wird nicht automatisch in den letzten Dateien gespeichert, wenn ich mich darauf konzentriere NSTextField
und klicken Sie auf NSButton
Der Wert wird nicht validiert und in den Benutzereinstellungen gespeichert ...
Ich habe dies in der NSButton-Aktion versucht:
// SearchF_Name is of NSSearchFiled
[SearchF_Name sendAction:SearchF_Name.action to:SearchF_Name.target];
Ohne Glück, und googeln hilft auch nicht ...Kannst du mir helfen?
Lösung
Nachdem ich die Frage gestellt hatte, habe ich die „letzte Option“ ausprobiert ...und es hat funktioniert!
Dies ist der Code für - (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];