2009-07-06 14 views
1

Beginnen wir mit einem Beispiel: Wenn Sie das Kontaktprogramm auf Ihrem iPhone eingeben, dann tippen Sie auf die TextField "Search", die Tastatur zeigt sich selbst und die TableView unter wird dunkel (und deaktiviert). Wenn ich dann diese dunkle deaktivierte Liste berühre, verbirgt sich die Tastatur und die Liste wird normal.iPhone: Deaktivieren anderer Elemente auf TextField Fokus

Ich möchte diese Funktionalität reproduzieren, aber ich weiß nicht wie. Gibt es eine Cocoa-Methode, oder muss ich diese selbst neu entwickeln?

Danke für Ihre Ratschläge.

Mart

Antwort

2

Ich würde sogar die UIView auf einen uibutton setzen, so dass Sie die Tastatur zu entlassen, wenn Sie möchten. Oh, das war schon da!

OK, hier ist ein Stück Code, der zeigt, wie die Schaltfläche selbst hinzuzufügen:

CGRect frame = CGRectMake(0, 
                 0, 
                 [self parentViewController].view.bounds.size.width, 
                 [self parentViewController].view.bounds.size.height); 
    imageView = [[UIButton alloc] initWithFrame:frame]; 
    [imageView setAlpha:0]; 
    imageView.opaque = NO; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:2]; 
    [imageView setAlpha:0.8]; 
    imageView.backgroundColor = [UIColor blackColor]; 
    [UIView commitAnimations]; 
    [imageView addTarget:self action:@selector(lockedScreenAction:) forControlEvents:UIControlEventTouchUpInside]; 

    [[self parentViewController].view addSubview:imageView]; 
+0

Danke Cyril. Jetzt kann ich einfach eine Kopie zu meinem Code machen und es würde perfekt funktionieren :) – Martin

1

Ich bin mir ziemlich sicher, dass Sie für sich selbst, dass die Entwicklung gehen zu müssen. Wenn ich mir den Effekt auf meinem Handy ansehe, denke ich, dass ich ein völlig transparentes (aber schwarzes) UIView haben würde, das mein UITableView überlagert. Registrieren Sie sich für die UIKeyboardWillShow-Benachrichtigung, und wenn Sie diese erhalten, animieren Sie die Deckkraft dieser UIView auf 70%. Stornieren Sie den Prozess auf UIKeyboardWillHide.

+0

Wenn Sie eine UIButton verwenden, ist es für die Freigabe der Tastatur tippen ist auch einfach. Setzen Sie den Button-Typ auf benutzerdefiniert und die backgroundColor auf schwarz mit 0,7 Alpha. –

+0

Danke für Ihre Hinweise, Leute. Aber ich denke, es ist ziemlich seltsam, dass Apple diese Funktionalität nicht in sein Kakao SDK eingefügt hat. – Martin

+0

Die Idee, den Blick zum Knopf zu machen, ist sehr gut. – mmc

Verwandte Themen