Ich habe UIToolBar
programmgesteuert ein erstellt und ein hinzugefügt UITextField
. Jetzt muss sich diese Symbolleiste über der Tastatur befinden, wenn ich in ein anderes Textfeld klicke.
UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0,400, 320, 60)];
[self.view addSubview:toolBar];
UITextField *txtView=[[UITextField alloc]initWithFrame:CGRectMake(0, 400, 260, 30)];
txtView.backgroundColor =[UIColor grayColor];
txtView.placeholder=@"Address";
UIBarButtonItem *txtfieldItem=[[UIBarButtonItem alloc]initWithCustomView:txtView];
toolBar.items =[NSArray arrayWithObject:txtfieldItem];
ios
uitextfield
uitoolbar
Sushil Sharma
quelle
quelle
Antworten:
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, 50)]; numberToolbar.barStyle = UIBarStyleBlackTranslucent; numberToolbar.items = [NSArray arrayWithObjects: [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)], [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)], nil]; [numberToolbar sizeToFit]; phonenumberTextField.inputAccessoryView = numberToolbar;
So schließen Sie die Tastatur ab:
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
Swift 3:
let numberToolbar = UIToolbar(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, 50)) numberToolbar.barStyle = UIBarStyle.Default numberToolbar.items = [ UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelNumberPad"), UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil), UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneWithNumberPad")] numberToolbar.sizeToFit() phonenumberTextField.inputAccessoryView = numberToolbar
Swift 4.2:
let numberToolbar = UIToolbar(frame:CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50)) numberToolbar.barStyle = .default numberToolbar.items = [ UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelNumberPad)), UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil), UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(doneWithNumberPad))] numberToolbar.sizeToFit() phonenumberTextField.inputAccessoryView = numberToolbar ... @objc func cancelNumberPad() { //Cancel with number pad } @objc func doneWithNumberPad() { //Done with number pad }
quelle
UITextField.appearance().inputAccessoryView = /* your tool bar setup code */
Sie müssen dies nicht mehr im Code tun.
Im Code einfach
IBOutlet
für beide eingeben :toolbarView
undtextView
und Verbindungen herstellen.@IBOutlet private var toolbarView: UIView! @IBOutlet private var textView: UITextView!
In der
viewDidLoad
Einrichtung Ihrer SymbolleisteView als ZubehörView IhrerUItextView
.override func viewDidLoad() { super.viewDidLoad() textView.inputAccessoryView = toolbarView }
Das Ergebnis lautet wie folgt:
quelle
Für schnelles (1.2):
let numberToolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.frame.size.width, 50)) numberToolbar.barStyle = UIBarStyle.Default numberToolbar.items = [ UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "keyboardCancelButtonTapped:"), UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil), UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "keyboardDoneButtonTapped:")] numberToolbar.sizeToFit() yourTextView.inputAccessoryView = numberToolbar
quelle
Sie können diesen Code verwenden, es funktioniert für mich.
-(void)viewdidload { UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init]; [keyboardDoneButtonView sizeToFit]; UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(doneClicked:)]; [keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]]; textField.inputAccessoryView = keyboardDoneButtonView; } -(void)doneClicked:(id)sender { NSLog(@"Done Clicked."); [self.view endEditing:YES]; }
quelle
Sie können die Eigenschaft
UITextField
s inputAccessoryView verwendentxtField.inputAccessoryView = toolBar;
quelle
Swift 3
let toolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 50)) toolBar.barStyle = UIBarStyle.default toolBar.items = [ UIBarButtonItem(title: "Button1", style: UIBarButtonItemStyle.plain, target: self, action: #selector(test2)), UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil), UIBarButtonItem(title: "Button2", style: UIBarButtonItemStyle.plain, target: self, action: #selector(test1))] toolBar.sizeToFit() myTextField.inputAccessoryView = toolBar
quelle
textField.inputAccessoryView=[weakSelf addToolBar]; [textField setKeyboardType:UIKeyboardTypeNumberPad];
und fügen Sie eine Methode hinzu
-(UIToolbar *)addToolBar { UIBarButtonItem *done=[[UIBarButtonItem alloc]initWithTitle:@"DONE" style:UIBarButtonItemStyleDone target:self action:@selector(done:)]; UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30)]; NSArray* toolBarItems=[[NSArray alloc]initWithObjects:done, nil]; [toolBar setItems:toolBarItems]; return toolBar; }
quelle
Swift 5.0 und höher
let toolBar = UIToolbar(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.size.width, height: 44.0))//1 let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)//2 let DoneButton = UIBarButtonItem(title: "Done", style: .plain, target: target, action: #selector(tapDone))//3 toolBar.setItems([flexibleSpace, DoneButton], animated: false) textField.inputAccessoryView = toolBar // Done Action @objc func tapDone() { self.view.endEditing(true) }
quelle
In Swift 3 und 4
let toolBar = UIToolbar() toolBar.barStyle = UIBarStyle.default toolBar.isTranslucent = true toolBar.isUserInteractionEnabled = true toolBar.sizeToFit() toolBar.items = [ UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.sendCodeBtnAction(sender:)))] tfPhone.inputAccessoryView = toolBar
quelle