首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITextField inputView不在Swift工作

UITextField inputView不在Swift工作
EN

Stack Overflow用户
提问于 2014-08-13 08:30:08
回答 5查看 10.5K关注 0票数 2

我正在尝试将inputView & inputAccessoryView设置为UITextField。但是,当我开始点击textField时,只有inputAccessoryView是从底层来的。

以下是我的代码:

代码语言:javascript
复制
@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;
}

提前谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-13 16:01:24

当我看到这样的虫子时,我真的很惊讶!您的代码看起来100%有效,必须工作。我甚至创建了一个小项目来重现这个问题。再生产成功了。

所以我的步骤是:

  1. 在Xib中使用UITextView创建一个简单的项目,在application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!)中实例化。运行并看到默认键盘显示。
  2. 将两个视图添加到Xib中,并将它们连接到MyViewController。并将inputViewaccessoryInputView设置为viewDidLoad,就像您所做的那样。
  3. 快跑去看看问题。

的答案从这里开始:

然后,我只需要重置仿真器,清理构建文件夹,并再次运行代码。一切都如期而至!

对于我来说,它就像一个带有xCode或模拟器(或者两者兼而有之)的bug,但我不能说谁有罪,原因何在。

屏幕截图(带有按钮的视图是我的键盘:)

票数 4
EN

Stack Overflow用户

发布于 2014-11-13 20:45:28

所以答案要简单得多,结果是。如果您使用的是硬件键盘而不是软键盘,则模拟器将打开其“连接硬件键盘”设置,您将不再使用软键盘。建议的您的模拟器重置工作的原因是,它也重置此设置。如果不想进行完全重置,只需关闭硬件键盘即可:

硬件->键盘->并确保“连接硬件键盘”为UNchecked

票数 3
EN

Stack Overflow用户

发布于 2014-08-13 10:23:52

您可以以编程方式创建该视图。

代码语言:javascript
复制
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!")
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25281501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档