我的类是 UIInputViewController
的子类。我想访问 UIInputViewController
的 textDocumentProxy
对象,这样我就可以在 textDocumentProxy
上调用 insertText
。
根据文档,textDocumentProxy
符合 UITextDocumentProxy
,后者符合 UIKeyInput
。
基于上面的逻辑,为什么我不能简单的做下面的事情。
self.textDocumentProxy.insertText("Hello World")
相反,我收到以下错误
'NSObject' does not have a member named 'insertText'
我需要做某种特殊的类型转换吗?
这是文档的一个片段。
class UIInputViewController : UIViewController, UITextInputDelegate, NSObjectProtocol {
var textDocumentProxy: NSObject! { get }
}
protocol UITextDocumentProxy : UIKeyInput, UITextInputTraits, NSObjectProtocol {
var documentContextBeforeInput: String! { get }
var documentContextAfterInput: String! { get }
}
protocol UIKeyInput : UITextInputTraits, NSObjectProtocol {
func hasText() -> Bool
func insertText(text: String!)
func deleteBackward()
}
最佳答案
你可以像这样在一行中调用这个方法
(self.textDocumentProxy as UITextDocumentProxy as UIKeyInput).insertText("Hello World!")
或
(self.textDocumentProxy as UIKeyInput).insertText("Hello World!")
关于swift - 无法在 Swift 中访问 textDocumentProxy 协议(protocol)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24103875/