UITextView 接收文本形式的听写,但文本在 textView.text 属性 中为零
UITextView receiving text form dictation, but text is nil in textView.text property
我正在尝试从输入方法为听写的 UITextView 中获取文本。在 textViewDidChange
委托方法中,我尝试打印以下信息:
print(textView.text)
print(myTextView.text)
print(textView.hasText)
print(textView.attributedText)
print(textView.textStorage)
所有这些都返回 nil,除了 hasText
返回为 false。
文本在 textView 中可见,但未注册。我应该说,当我去编辑字段中的另一个表单,然后尝试从此文本字段获取值时,输入的文本在 textView 的 textView.text 属性 中可见。但这就像需要一些时间来编辑其他字段才能完全 "register" 使用 textView 对象。
知道这里会发生什么吗?
过一会儿试试这个
let when = DispatchTime.now() + 0.5
DispatchQueue.main.asyncAfter(deadline: when) {
print(textView.text)
print(textView.hasText)
print(textView.hasText)
print(textView.attributedText)
print(textView.textStorage)
}
更新:这是因为您试图在设置之前打印文本。将文本设置到 textView 中需要一些时间。
我正在尝试从输入方法为听写的 UITextView 中获取文本。在 textViewDidChange
委托方法中,我尝试打印以下信息:
print(textView.text)
print(myTextView.text)
print(textView.hasText)
print(textView.attributedText)
print(textView.textStorage)
所有这些都返回 nil,除了 hasText
返回为 false。
文本在 textView 中可见,但未注册。我应该说,当我去编辑字段中的另一个表单,然后尝试从此文本字段获取值时,输入的文本在 textView 的 textView.text 属性 中可见。但这就像需要一些时间来编辑其他字段才能完全 "register" 使用 textView 对象。
知道这里会发生什么吗?
过一会儿试试这个
let when = DispatchTime.now() + 0.5
DispatchQueue.main.asyncAfter(deadline: when) {
print(textView.text)
print(textView.hasText)
print(textView.hasText)
print(textView.attributedText)
print(textView.textStorage)
}
更新:这是因为您试图在设置之前打印文本。将文本设置到 textView 中需要一些时间。