2015-12-12 9 views
0

У меня возникла проблема с тем, что я не могу выполнить пользовательский входной просмотр, если клавиатура не открывается. У меня есть 2 UITextField, у одного из них есть пользовательский inputView. Назовем их tf1 и tf2. tf2 имеет пользовательский inputView. если я сначала коснусь tf2, ничего не произойдет. Если я нажму tf1, появится первая и по умолчанию клавиатура, а затем, когда я нажму tf2, появится также customView. Если на экране нет клавиатуры, пользовательский inputView не появляется. Если на экране есть клавиатура, может появиться пользовательский inputView. Зачем?Выполнение пользовательского ввода. Пользовательский входной вид не появляется, если клавиатура по умолчанию не открыта.

Как назначить inputview показан ниже:

let numPad = KeyboardViewController(nibName:"KeyboardView",bundle: NSBundle.mainBundle()) 
let numPadFrame = CGRectMake(0, 0, 1024, 352) 

override func viewDidLoad() { 
    super.viewDidLoad() 

    customKeyboard = numPad.view 
    customKeyboard.frame = numPadFrame 
    tf2.inputView = customKeyboard 
+0

не могли бы вы отправить код ..... –

+0

Sure. Я добавил код – letitbefornow

+0

, вы должны установить свое представление как входное представление в методе 'textfieldShouldBeginEditing' –

ответ

3

Наконец я сделал это. Я удалил коды о загрузке nib и т. Д. Из viewDidLoad и создал для него функцию.

Здесь функция

func loadInterface() { 

    // load the nib file 
    let calculatorNib = UINib(nibName: "KeyboardView", bundle: NSBundle.mainBundle()) 
    // instantiate the view 
    let calculatorView = calculatorNib.instantiateWithOwner(self, options: nil)[0] as! UIView 

    self.view.frame = CGRectMake(0, 0, 1024, 352) 
    let objects = calculatorNib.instantiateWithOwner(self, options: nil) 
    self.view = objects[0] as! UIView 
    self.inputView?.addSubview(calculatorView) 


} 

и вызвать эту функцию в viewDidLoad.

override func viewDidLoad() { 
     super.viewDidLoad() 

     loadInterface() 

     self.view.autoresizingMask = UIViewAutoresizing.FlexibleHeight 
     self.view.translatesAutoresizingMaskIntoConstraints = false 


//  let nib = UINib(nibName: "KeyboardView", bundle: NSBundle.mainBundle()) 
//  self.view.frame = CGRectMake(0, 0, 1024, 352) 
//  let objects = nib.instantiateWithOwner(self, options: nil) 
//  view = objects[0] as! UIView; 
     var counter = 0 
     for view in self.view.subviews { 
      if let btn = view as? UIButton { 
       btn.layer.cornerRadius = 5.0 
       btn.translatesAutoresizingMaskIntoConstraints = false 
       btn.tag = counter 
       counter++ 

      } 
     } 
    } 

И он решил все.