11 Stimmen

Ziffernblocktastatur zeigt Return-Taste im iphone nicht an

Ich bin neu in der iPhone-Technologie. Ich habe ein Problem in einer iPhone-Anwendung gespeichert, aber wenn ich Textfeld-Tastatur Typ Nummernblock die Tastatur nicht zeigen eine Rückkehr / fertig-Taste.

Wie kann ich die Tastatur des Nummernblocks ausblenden, nachdem ich die Zahl in das Textfeld eingegeben habe? Haben Sie dafür eine Lösung? Bitte helfen Sie uns.

11voto

Oscar Punkte 651

Sie können dies auf diese Weise tun:

@property (nonatomic, strong) UITextField *textField;

- (void)viewDidLoad {
    [super viewDidLoad];

    self.textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
    UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonDidPressed:)];
    UIBarButtonItem *flexableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:NULL];
    UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, [[self class] toobarHeight])];
    [toolbar setItems:[NSArray arrayWithObjects:flexableItem,doneItem, nil]];
    self.textField.inputAccessoryView = toolbar;
}

- (void)doneButtonDidPressed:(id)sender {
    [self.textField resignFirstResponder];
}

+ (CGFloat)toolbarHeight {
    // This method will handle the case that the height of toolbar may change in future iOS.
    return 44.f;
}

7voto

Najeebullah Shah Punkte 4154

Sie müssen UIKeyboardTypeNumberPad verwenden, versuchen Sie stattdessen UIKeyboardTypeNumbersAndPunctuation, Damit wird nicht nur die Eingabetaste angezeigt, sondern es werden auch einige zusätzliche Satzzeichen angezeigt

1voto

Saurabh Punkte 22503

Im Nummernblock gibt es keine Return- oder Fertig-Taste. Sie können eine Sache tun, wenn der Benutzer außerhalb des Textfeldes berührt, können Sie die Tastatur ausblenden. Sie sollten etwas wie dies tun -

if (there is a touch outside of your textField)
{

   [textField resignFirstResponder];

}

0voto

Pochi Punkte 13352

Diese Frage wurde bereits beantwortet, ich weiß es, denn so habe ich die Lösung bekommen. Sie haben 2 Optionen, die erste ist, die Tastatur auszublenden, indem Sie eine Berührung der Hauptansicht implementieren, die die Nachricht "Bearbeitung beendet" sendet. das blendet die Tastatur aus [self.view endEditing:YES];

Wenn Sie den Touch-Listener zur Hauptansicht hinzufügen, müssen Sie eine Bedingung implementieren, damit alle anderen Schaltflächen weiterhin funktionieren.

Um eine Return-Taste zu simulieren, müssen Sie sie wie folgt hinzufügen:

Registrieren Sie sich für eine Benachrichtigung über die Anzeige einer Tastatur und fügen Sie diese dem Code hinzu:

if ([self.passCodeLabel isFirstResponder])
        {
            UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
            doneButton.frame = CGRectMake(0, 163, 106, 53);
            //doneButton.frame = CGRectMake(0, 163, 257, 257);
            doneButton.adjustsImageWhenHighlighted = NO;
            [doneButton setImage:[UIImage imageNamed:@"doneup.png"] forState:UIControlStateNormal];
            [doneButton setImage:[UIImage imageNamed:@"donedown.png"] forState:UIControlStateHighlighted];
            [doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];

            // locate keyboard view
            UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
            NSLog(@"%@",[[UIApplication sharedApplication] windows]);

            UIView* keyboard;
            NSLog(@"Shared applicaiton windows count:%i",tempWindow.subviews.count);
            for(int i=0; i<[tempWindow.subviews count]; i++) {
                keyboard = [tempWindow.subviews objectAtIndex:i];
                NSLog(@"%@",[keyboard description]);
                // keyboard view found; add the custom button to it
                if([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES)
                {
                    NSLog(@"Adding return button");
                    [keyboard addSubview:doneButton];
                }
            }
        } 

Dadurch wird der Tastatur ein eigenes Bild für die Schaltfläche "Fertig" hinzugefügt (das Sie einfach kopieren können, indem Sie einen Screenshot des Bildschirms des leeren Steckplatzes machen und den Fertig-Text hinzufügen).

Btw der Code, den ich eingefügt habe, funktioniert in meinem Layout. Für Ihre müssen Sie es vielleicht ein bisschen ändern, aber das Prinzip ist das gleiche.

  • Erstellen Sie die Schaltfläche

  • Suchen Sie nach der Unteransicht Tastatur

  • Hinzufügen der Schaltfläche zu dieser Unteransicht

0voto

Paresh Hirpara Punkte 483
- (void)viewDidLoad
{

    [super viewDidLoad];
    UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    numberToolbar.barStyle = UIBarStyleBlackTranslucent;
    numberToolbar.items = [NSArray arrayWithObjects:
                           [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                           [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],
                           nil];
    [numberToolbar sizeToFit];

    _txt_mobileno.inputAccessoryView = numberToolbar;

}

-(void)doneWithNumberPad
{
    [_txt_mobileno resignFirstResponder];

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X