2013-01-18 17 views
15

Kiedy klikam wewnątrz pola tekstowego, Jak mogę dodać przycisk plus do UITextField, jak pokazano na poniższym ekranie? Po kliknięciu tego przycisku uruchomi się aplikacja kontaktu z iPhonem. Byłbym bardzo wdzięczny za przykład dowolnego kodu. Dziękidodaj przycisk do uitextfield

enter image description here

+3

dlaczego głosowanie w dół? –

Odpowiedz

8

użyć poniższy sposób dodać UIButton

[self.txtField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 

- (BOOL) textFieldDidChange:(UITextField *)textField 
{ 
    UIButton *btnColor = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btnColor addTarget:self action:@selector(btnColorPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    btnColor.frame = CGRectMake(self.txtTag.bounds.size.width - 50, 5, 25, 25); 
    [btnColor setBackgroundImage:[UIImage imageNamed:@"PaintPickerButton.png"] forState:UIControlStateNormal]; 
    [self.txtTag addSubview:btnColor]; 

    return YES; 
} 

lub napisać

-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationBeginsFromCurrentState:YES]; 
    [UIView setAnimationDuration:0.3f]; 
    // self.scrollView.frame = CGRectMake(0, 35, self.view.bounds.size.width, self.view.bounds.size.height - 250); 
    [UIView commitAnimations]; 

    UIButton *btnColor = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btnColor addTarget:self action:@selector(btnColorPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    btnColor.frame = CGRectMake(150, 5, 25, 25); 
    [btnColor setBackgroundImage:[UIImage imageNamed:@"PaintPickerButton.png"] forState:UIControlStateNormal]; 
    [self.txtField addSubview:btnColor]; 

    return YES; 
} 
+0

dlaczego używać self.scrollView.frame = CGRectMake (0, 35, self.view.bounds.size.width, self.view.bounds.size.height - 250); – pengwang

+0

@ pengwang- sory i skopiuj kod z mojego projektu, więc ta linia nie została usunięta :) – iPatel

+4

Ręczne dodanie własnego UIButton jest nie do przyjęcia, kiedy pole tekstowe staje się aktywne, przycisk zostanie wysłany z powrotem i nie będzie można go wstawić! Najlepszym rozwiązaniem jest użycie właściwości 'rightView' –

8

Po użyciu kodu do dodawania przycisku w UITextField.

-(void)ViewDidLoad{ 
    UITextField *txt = [[UITextField alloc]initWithFrame:CGRectMake(140, 120, 160, 40)]; 
    txt.returnKeyType = UIReturnKeyDone; 
    txt.placeholder = @"Enter or Mobile Number"; 
    [txt setBorderStyle:UITextBorderStyleRoundedRect]; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button setImage:[UIImage imageNamed:@"crossImg.png"] forState:UIControlStateNormal]; 
    button.imageEdgeInsets = UIEdgeInsetsMake(0, -16, 0, 0); 
    [button addTarget:self action:@selector(clearText:) forControlEvents:UIControlEventTouchUpInside]; 
    txt.rightView = button; 
    txt.rightViewMode = UITextFieldViewModeAlways; 
    [self.view addSubview:txt]; 
} 

-(IBAction)clearText:(id)sender{ 

} 
3

Zastosowanie rightView własnością UITextField. W polu textFieldDidBeginEditing: umieść przycisk wyboru z operacją, którą chcesz ustawić jako & na rightView. I w textFieldDidEndEditing: zestaw zero do rightView

1

można również przejść do niestandardowego widoku ant, a następnie dodać do niego widok podrzędny. to ukryjesz. będzie widoczny tylko wtedy, gdy użytkownik kliknie to

9

można użyć poniższy kod na to:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if(textField == yourFirstTextField) 
    { 
     UIButton *addButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [addButton setImage:[UIImage imageNamed:@"addImage.png"] forState:UIControlStateNormal]; 
     [addButton addTarget:self action:@selector(yourActionHere) forControlEvents:UIControlEventTouchUpInside]; 
     textField.rightViewMode = UITextFieldViewModeWhileEditing; 
     textField.rightView = addButton; 
    } 
} 

Można użyć powyższej metody jeśli dodano pole w IB.

Jeśli są tworzone go za pomocą kodu, należy dodać poniższy kod podczas tworzenia:

UIButton *addButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[addButton setImage:[UIImage imageNamed:@"addImage.png"] forState:UIControlStateNormal]; 
[addButton addTarget:self action:@selector(yourActionHere) forControlEvents:UIControlEventTouchUpInside]; 
textField.rightViewMode = UITextFieldViewModeWhileEditing; 
textField.rightView = addButton; 
0
self.locationName.clearButtonMode = UITextFieldViewModeWhileEditing; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    button.frame = CGRectMake(0, 0, 30, 30); 
    [button setImage:[UIImage imageNamed:@"goButtonIcon.png"] forState:UIControlStateNormal]; 
    [button addTarget:self action:@selector(goButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

    self.locationName.rightView = button; 
    self.locationName.rightViewMode = UITextFieldViewModeUnlessEditing; 

a następnie wywołać tę metodę:

-(IBAction)goButtonClicked:(id)sender{ 

} 

self.locationName -------> UITextField odniesienia (w viewDidLoad można napisać ten kod)

Powiązane problemy