Кажется, что с iOS 8 и 9, Xcode 7 свойства beginningOfDocument
и endOfDocument
UItextField
всегда nil
Что бы вы ни делали. Хуже того, они не имеют необязательного типа (UITextPosition?
) в Swift 2, вместо этого они имеют тип UITextPosition
- и все еще имеют значение nil
. Debuger называет его <uninitialized>
вместо nil
, но это то же самое, что и для его поведения. Для воспроизведения, поместите следующий код в любой UIViewController
:Свойство UITextField.beginningOfDocument всегда nil на iOS 8, 9. Серьезная ошибка в iOS?
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
}
Является ли это действительно (огромная) ошибка или я что-то отсутствует? Есть ли обходной путь, возможно, некоторые шаги для решения проблемы?
EDIT: Обратите внимание, что эта проблема не ответил here. Предлагаемые исправления там не применяются к моему примеру:
- Мой демонстрационный код вообще не использует Interface Builder, поэтому Gazzini's answer не работает. Кроме того, Interface Builder в XCode 7 не имеет свойства
selectable
дляUITextView
, и сам класс не объявляет такое свойство. - Мой демонстрационный код добавляет
UITextField
, чтобы просмотреть иерархию доbeginningOfDocument
, так что m1h4's answer также не имеет значения.
Я не понимаю, если это не факультативно, почему вы объявляете его необязательным? Вы пытались использовать iOS8? – Andrea
@Andrea Я объявляю его необязательным, чтобы продемонстрировать проблему. Если бы я не сделал этого и просто использовал значение (предполагается, что это 'UITextPosition'), я получаю неожиданное поведение (потому что это действительно' nil'). На iOS 8 я получаю ту же ошибку, такое же поведение. – drasto
Отправлять уведомления об ответах на работоспособность Эта статья была переведена автоматически. Нажмите здесь, чтобы показать исходное сообщение http://stackoverflow.com/questions/20426048/uitextview-beginningofdocument-returns-nil – Andrea