2

inputView&inputAccessoryViewを設定しようとしていUITextFieldます。しかし、テキストフィールドのタップを開始するとinputAccessoryView、下からのみ表示されます。

以下は私のコードです:

@IBOutlet weak var pickerView: UIPickerView!
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var toolBar: UIToolbar!

override func viewDidLoad() {
    super.viewDidLoad()
    self.textField.inputView = self.pickerView;
    self.textField.inputAccessoryView = self.toolBar;
}

前もって感謝します。

4

5 に答える 5

3

したがって、答えははるかに簡単です。ソフト キーボードの代わりにハードウェア キーボードを使用すると、シミュレータは「ハードウェア キーボードの接続」設定に切り替わり、ソフト キーボードを取得できなくなります。提案されたシミュレーターのリセットが機能する理由は、この設定もリセットされるためです。完全なリセットを行いたくない場合は、次のようにしてハードウェア キーボードをオフにします。

ハードウェア -> キーボード -> 「ハードウェア キーボードを接続」のチェックが外れていることを確認します。

シミュレータのハードウェア キーボードを無効にする方法

于 2014-11-13T20:45:28.430 に答える
1

inputView を設定するとビューがストーリーボードに追加されましたが、外観設定は機能せず、viewDidLoad() が呼び出されなかったため、これはうまくいきました。

self.inputText?.inputViewController?.view.addSubview(self.basicKeyboard) self.inputText!.inputView = self.basicKeyboard self.inputText!.inputAccessoryView = nil

于 2016-02-21T21:44:18.253 に答える
1

そのビューはプログラムで作成できます。

weak var pickerView: UIPickerView!
weak var toolBar: UIToolbar!
@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()
    var picker = UIPickerView()
    picker.delegate = self
    picker.dataSource = self
    self.pickerView = picker
    self.textField.inputView = pickerView

    var toolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.bounds.size.width, 44))

    var item = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done,
        target: self, action: "doneAction")

    toolbar.setItems([item], animated: true)
    self.textField.inputAccessoryView = toolbar
    self.toolBar = toolbar
}

func doneAction() {
    self.textField.resignFirstResponder()
    println("done!")
}
于 2014-08-13T10:23:52.880 に答える