MakeFirstResponder unter core data

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MakeFirstResponder unter core data

    Hallo,

    ich möchte unter Core data innerhalb einer Funktion den first responder im window setzen.

    Wenn ich das Objekt im interface definiere mit
    IBOutlet NSTextField* txtfld;

    und im Programm dann
    BOOL abc = [txtfld makeFirstResonder];
    aufrufe klappt alles.

    Ich habe aber keine Lösung, wenn ich ein Feld aktivieren will, dass mit einem Attribut einer Entität unter Core Data verknüpft ist.
  • Hi,
    wenn ich in einem Projekt meine Klasse z.B. "Person" über Interface und Implementation definiere kann ich später z..B. die Eigenschaft "Name" mit "makefirstresponder" aktivieren.

    Wie mache ich das aber, wenn ich Core Data nutze, dann kann ich so nicht auf die Eigenschaften zugreifen. Ich habe dann ja eine Entität.
    Im IB setze ich dann einen Arraycontroller ein, der als Quelle die Entität "Person" hat. Die einzelnen Felder haben dann den Pfad "Arraycontroller.selectedObject.name".

    Zumindest habe ich keinen Weg gefunden, um im Programm den first responder zu setzen, den der Compiler auch gut findet. Er meldet dann immer, das für die Eigenschaft kein Outlett definiert sei.

    Ich muss irgendwo Müll mache, allein ich sehe es nicht.
  • Ah, ok. Dir scheinen hier ein paar Grundlagen zu fehlen bzw. die korrekten Bezeichnungen dazu.

    Wenn Du z.B. einen NSView oder ein NSTextField aus dem (View-)Controller heraus ansprechen möchtest, dann benötigst Du eine Referenz darauf. In diesem Fall bietet sich ein IBOutlet an, damit Du diese Verknüpfung im InterfaceBuilder entsprechend erstellen kannst. Alternativ könntest Du den jeweiligen NSViews etc. auch eindeutige Tags geben und die Referenz zu diesen im (View-)Controller per [self.view viewWithTag:123] ermitteln.
  • Ich habe das jetzt noch mal geändert.
    NSWindow* win = [wcHauptScreen window] ; // wcHauptScreen ist ein NSWindowController
    NSView* vw =[win contentView];
    BOOL abc = [win makeFirstResponder:[vw viewWithTag:1]];

    Damit wird das NSTextField aktiviert. Ziel erreicht.

    Vielen Dank noch mal für die Hilfe. Ich werde jetzt noch mal gezielt die Doku bzgl. viewWithTag und makeFirstResonder nachlesen.