Frage

Alle Beispiele I der Einrichtung einer Benachrichtigung wie folgt aussehen finden:

[nc addObserver: Selbstwähler: @selector (keyboardWillShow :) Name: UIKeyboardWillShowNotification Objekt: nil];

, wo Objekt immer wird auf Null gesetzt. Ziel ist, die notificationSender, die auf diese Weise in der Dokumentation definiert ist:

"Das Objekt, deren Meldungen die Beobachter wollen empfangen;. Das heißt, nur von dieser Absender-Benachrichtigungen wird an den Beobachter geliefert Wenn Null, das Benachrichtigungszentrum keine Mitteilung des Absenders verwenden zu entscheiden, ob es die liefern Beobachter. "

Ich möchte nur für einen bestimmten Textansicht, die die Tastatur eine Benachrichtigung erhalten, so möchte ich sagen, dass addObserver, aber ich weiß nicht, was es für das Objekt zu geben. Ich habe versucht, den Austritt Variable, die in die Textansicht in Ich habe Interesse gebunden sind, aber das führte nur in meinen keine Mitteilungen überhaupt zu bekommen.

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Die UIKeyboardWillShowNotification kommt aus dem Fenster Instanz und für alle Absichten und Zwecke ist eine „System“ Benachrichtigung. Die Tastatur entweder zeigt oder nicht angezeigt wird, ist es nicht wirklich etwas, das zu einem bestimmten Steuerelement gebunden ist.

Wenn Sie etwas tun wollen, wenn ein Benutzer ein bestimmtes Textfeld eingibt, sollten Sie wahrscheinlich, dass Kontrolle in dem Delegiertentextfeld statt.

Andere Tipps

In diesem Fall können Sie die Benachrichtigung erhalten nur für einen bestimmten Textansicht, wie die Doku für UIKeyboardWillShowNotification sagt: „Das Benachrichtigungsobjekt null ist.“.

Sie haben in Ihrem keyboardWillShow impl, wenn Ihre bestimmte Textansicht isFirstResponder überprüfen.

Ich hatte zwei konkurrierende Bedürfnisse - ich die Tastatur Benachrichtigung verwenden musste, weil ich die Tastaturhöhe erhalten benötigt, die nur zur Verfügung, so zu sein scheint, aber ich habe auch in I, der Textansicht muß wissen, war, was bedeutete, dass auch mit dem textViewDidBeginEditing Delegierten. Nach langen Herumspielen endlich ich immer die Tastaturhöhe in der Benachrichtigungsmethode zurückgegriffen und sie in einer Instanzvariablen speichern, die dann verfügbar war in der Delegat-Methode zu verwenden (Ich brauche die Ansicht, um nach oben, so dass die untere Textansicht nicht meistens ist unter ihnen Tastatur versteckt, wenn sie beginnen Typisierung). Ein wenig unelegant, aber es funktioniert.

Danke für die Hinweise!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top