Derzeit entwickle ich eine App für MacOS. Ich habe eine NSTableView
mit verschiedenen Zeilen. Eine Zeile besteht aus einer NSTextField
und einer Schaltfläche. Sie können eine ID in das Textfeld eingeben und nach dem Drücken der Taste werden Daten von einem Server geladen.Fokussieren eines NSTextField auf einer NSTableViewCell
Aber ich habe ein Problem. Ich kann die Textfeldsteuerung nicht wirklich konzentrieren. Immer wenn ich darauf klicke, wird die Zelle fokussiert und "isst" die Nachricht.
Wenn ich auf das Steuerelement klicke, wird die Nachricht gegessen, aber wenn ich den Text in das Steuerelement "ziehe", kann ich es fokussieren. Ich will nicht der Benutzer die Zelle konzentrieren, so implementiert ich die folgenden Ereignishandler:
func tableView(tableView: NSTableView, shouldSelectRow row: Int) -> Bool
{
if tableView == self.tableViewSegments
{
if segments[row].id!.integerValue < 0
{
return false
}
}
return true
}
Dies verhindert, dass die Zelle aus fokussiert wird, sondern auch das Textfeld ein, immer noch die Taste funktioniert aber? Sobald ich diese Methode deaktivieren, kann ich die Zelle, aber nicht das Textfeld fokussieren (siehe Bild).
Hoffentlich können Sie verstehen, was das Problem ist. Wie kann ich das gewünschte Verhalten erreichen?