2017-08-29 25 views
0

完了ボタンが表示されるようにするためのテキスト表示があります。私はUIツールバーを追加し、アウトレットと終了ボタンのIBアクションに接続しましたUIツールバーを使用してキーボードに「完了」ボタンを追加します

ツールバーが表示されません?私は何を逃したのですか?

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
    ingredientsTextField.inputAccessoryView 
    = keyboardToolbar 
    return true 
} 

@IBAction func didClickDoneButton(_ sender: UIBarButtonItem) { 
    ingredientsTextField.endEditing(true) 
} 

答えて

0

この

func textViewShouldBeginEditing(_ textView: UITextView) -> Bool { 

     self.addAccessoryView() 

     return true 
    } 


    func addAccessoryView() -> Void { 
     let toolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 44)) 
     let doneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.doneButtonTapped(button:))) 

     let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) 

     toolBar.items = [flexibleSpace,doneButton] 
     toolBar.tintColor = UIColor.red 

     self.textView.inputAccessoryView = toolBar 
    } 
    func doneButtonTapped(button:UIBarButtonItem) -> Void { 
     // do you stuff with done here 
    } 
0

あなたのコードスニペットは、正常に見えるチェックし、ツールバーのあなたの創造が間違っているかもしれません! textfieldの代理人を設定しましたか?それを逃した場合はfunc textFieldShouldBeginEditingが呼び出されないように設定してください!

、ご参考のために動作するコードの下に

import UIKit 

class ViewController: UIViewController,UITextFieldDelegate { 

    @IBOutlet weak var textField: UITextField! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    internal func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
     let numberToolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 50)) 
     numberToolbar.barStyle = UIBarStyle.default 
     numberToolbar.items = [ 
      UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: Selector(("cancelNumberPad"))), 
      UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil), 
      UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: Selector(("doneWithNumberPad")))] 
     numberToolbar.sizeToFit() 
     textField.inputAccessoryView 
      = numberToolbar 
     return true 
    } 

    @IBAction func didClickDoneButton(_ sender: UIBarButtonItem) { 
     textField.endEditing(true) 
    } 

    @IBAction func buttonClick(_ sender: Any) { 
     textField.endEditing(true) 
    } 

} 
を見つけてください。
関連する問題