swift - 无法在 Swift 中访问 textDocumentProxy 协议(protocol)函数

标签 swift

我的类是 UIInputViewController 的子类。我想访问 UIInputViewControllertextDocumentProxy 对象,这样我就可以在 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/

相关文章:

ios - 弹出框演示 Controller - View 周围有间距,不适合全宽度

cocoa - Autolayout 程序化大小问题 : Cannot Resize Superview

ios - 检查用户是否登录 Facebook 并更改 View Controller

swift - 元组比较在幕后是如何工作的

ios - iOS 中的 Fragment 和 ViewPager

ios - 使本地化字符串的一部分粗体 swift

ios - 从使用 Mirror 创建的字典中过滤 nil 值

ios - 在 swift iOS 应用程序中将参数发送到套接字

swift - 如何在 Swift 中使用 Objective-C 枚举

ios - 如何在 Swift 中将时间/日期数组从最旧到最新排序?