首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性UITextField.beginningOfDocument在iOS 8、9上总是为零。iOS中存在严重错误吗?

属性UITextField.beginningOfDocument在iOS 8、9上总是为零。iOS中存在严重错误吗?
EN

Stack Overflow用户
提问于 2015-10-23 12:44:03
回答 1查看 1.2K关注 0票数 6

看起来,对于iOS 8和9,Xcode 7,属性beginningOfDocumentendOfDocument of UItextField都是nil,不管你做什么。更糟糕的是,它们不是Swift 2中的可选类型(UITextPosition?),而是UITextPosition类型,并且仍然具有nil值。Debuger称它为<uninitialized>而不是nil,但它的行为和它的行为是一样的。若要复制,请将以下代码放入任何UIViewController

代码语言:javascript
复制
override func viewDidAppear(animated: Bool) {
    let textField = UITextField()
    textField.text = "Hello"
    view.addSubview(textField)
    let position: UITextPosition? = textField.beginningOfDocument //beginningOfDocument is of type UITextPosition, not optional
    //following line should always succeed
    let positionUnwrapped = position! //fatal error: unexpectedly found nil while unwrapping an Optional value
}

这真的是一个(巨大的)错误,还是我遗漏了什么?有没有解决办法,也许是一些解决问题的方法?

编辑:注意到这个问题是而不是回答的这里。建议的修补程序不适用于我的示例代码:

  1. 我的演示代码根本不使用Interface,因此Gazzini的答复无法工作。此外,XCode 7中的接口生成器没有用于UITextView的属性selectable,类本身也没有声明此类属性。
  2. 我的演示代码在访问UITextField之前添加了beginningOfDocument来查看层次结构,因此M1h4回答也不相关。
EN

回答 1

Stack Overflow用户

发布于 2015-10-23 16:01:12

是的,这是beginningOfDocument的Swift声明中的一个bug。你可以向苹果这里报告。

它将返回一个有效的UITextPosition后,它成为第一个响应。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33302640

复制
相关文章

相似问题

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