2014-01-22 5 views
5

In Interface Builder, wenn Control-Klick auf eine NSTextField, die Option Sent Actions ist verfügbar. Ich dachte, es würde eine Aktion auslösen, wenn ich auf meine NSTextField (die nicht bearbeitbar ist) klicken, aber es funktioniert nicht.Was nutzt die Option "Gesendete Aktionen" für ein NSTextField?

enter image description here

Jede Ahnung von dem Ziel, diese Option?

Antwort

2

Die folgenden Erklärungen beschreiben, wie eine Aktion mit einem Objekt verbunden wird, das im Feld "Gesendete Aktionen" angezeigt wird. In Ihrem Fall wäre das NSTextField. Zum Beispiel ist hier eine Frage, wie Sie eine spezifische Aktion zu NSTextField hinzufügen: Send action from NSTextField when on key up instead of return.

All dies ist möglicherweise nicht relevant, da Sie mit einem nicht editierbaren NSTextField arbeiten. Wenn Sie jedoch eine Klickaktion hinzufügen möchten, finden Sie hier eine Lösung: Which delegate method should I use to respond to clicks on an NSTextField?.

  • How to connect a button to a method on Mac OS X

    Wenn Sie mit der rechten Maustaste auf eine Schaltfläche in einer Mac-Spitze, Perform: unter Received Aktionen; Es ist kein Ereignis. Der einzige Eintrag unter Gesendete Aktionen ist "Selektor", was das einzige ist, was Sie mit einer Aktion unter einem anderen Objekt verbinden können.

    Da gibt es nur ein „gesendet Ereignis“, werden Sie normalerweise nur Steuer-Drag/rechts ziehen von der Steuerung an das Ziel und wählen Sie die Aktion statt Steuerklick, das Ereignis auswählen und ziehen davon.

  • Create the connection from the button to the action

    Jetzt, mit der rechten Maustaste (oder Ctrl-Klick) auf die Schaltfläche hinzugefügt zuvor, zu seine Inspektor zeigen. In diesem Fenster sehen Sie einen Abschnitt mit dem Titel "Gesendete Aktionen", in dem ein einzelnes Element angezeigt wird. dieser Artikel heißt "Selektor", weil er noch nicht mit einer Aktionsmethode verbunden ist. Um die Verbindung herzustellen, ziehen Sie vom Ziel dieses Elements (der Kreis rechts unter ) zum Controller-Objekt im Dokumentfenster.

  • Adding an action to a GUI item - Slide 12/13

    1. Schreiben Sie den Aktionscode als Methode einer Klasse, die IB (zum Beispiel weiß: ... AppDelegate oder jede Klasse von Ihrer eigenen machen, dass Sie machen zu IB bekannt)
    2. Klicken Sie auf das GUI-Element im Anwendungsfenster, dessen Aktion
    3. Öffnen Sie die Anschlüsse Inspector

      festlegen möchten

      Unter der Liste der gesendeten Aktionen sehen Sie für diesen Artikel "Selektor". Klicken Sie auf den leeren Kreis rechts und ziehen Sie ihn in das MainMenu.xib-Fenster in die Klasse, in der die Aktionsmethode implementiert ist; gib es dort frei.

      Nach der Veröffentlichung wird eine Liste aller implementierten Methoden angezeigt, die als Aktionen dienen können. Wähle einen mit der Maus aus und klicke darauf.

      Dieser Prozess entspricht dem Zielaktionsmuster, das wir beim Schreiben der App ohne IB verwendet haben. Die Aktionsmethode muss mit einem Parameter vom Typ id geschrieben werden.

0
- (void)viewDidLoad 
{ 
    _txt_city.delegate = self; 
    _txt_city.tag = 1000; 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
} 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;  // return NO to disallow editing. 
{ 
    if(textField.tag == 1000) 
    { 
     // Create event; 
     return YES; 
    } 
    else 
    { 

    } 
    return YES; 
}