在Swift

时间:2015-05-30 10:30:39

标签: ios swift uitextfield inputview

我正在尝试使用计算器作为swift中UITextField的自定义输入视图。

我在我的应用程序中单独定义了一个计算器作为CalculatorViewController。

我需要访问我在InputViewController中的UITextField中的CalculatorViewController。

我在InputViewController中定义了以下属性来访问计算器视图

var textFieldInputView : UIView!{

        let calculatorInputController = self.storyboard?.instantiateViewControllerWithIdentifier("calculatorVC") as! calculatorViewController

        let calculatorInputView = calculatorInputController.view

        return calculatorInputView
}

然后在textField中添加以下代码以访问textFieldInputView

    textField.inputView = textFieldInputView

现在当我单击textField时,计算器弹出,如下所示,它不在键盘出现的位置。也没有按钮工作。

非常感谢,如果有人能告诉我如何解决这个问题。

screenshot of custom input view

1 个答案:

答案 0 :(得分:1)

根据以下内容解决此问题。

  1. 创建了一个界面构建器" keyboard.xib "显示所有UIButtonUILabel
  2. keyboard.xibcalculatorViewController
  3. 相关联
  4. DetailViewController作为UITextFields的子类存在的视图控制器(例如calculatorViewController)进行子类化。
  5. 根据以下代码

    创建了UIView
        var customkeyboardView : UIView {
    
        let nib = UINib(nibName: "CalculatorView", bundle: nil)
        let objects = nib.instantiateWithOwner(self, options: nil)
        let cView = objects[0] as! UIView
        return cView
    }
    
  6. 将customkeyboardView指定为UITextField的inputView,如下所示

    textField.inputView = customkeyboardView