【问题标题】:How do you connect the "delegate" outlet of a UITextView to a class that implements UITextViewDelegate protocol?如何将 UITextView 的“委托”出口连接到实现 UITextViewDelegate 协议的类?
【发布时间】:2010-12-19 14:14:06
【问题描述】:

如何将 UITextView 的“委托”出口连接到实现 UITextViewDelegate 协议的类?

我似乎找不到示例in the docs

奇怪的是 UITextView 的“代表”插座有拖放界面的东西,就像你可以将它连接到 另一个小部件但当然,我不想连接它到一个小部件,我想把它连接到一个现有的类

【问题讨论】:

    标签: iphone delegates uitextview


    【解决方案1】:

    这是一个很老的问题,但我也遇到了麻烦,我想我会分享一个最新的 Xcode 5 解决方案。

    您应该能够将代理拖到黄色圆圈中,其中白色方块位于情节提要上视图控制器下方的黑色条中。这一点都不明显,所以我提供了一个截图

    【讨论】:

      【解决方案2】:

      在 Interface Builder 中连接委托:

      (1) 将适当的控制器拖到 nibs 主窗口中,并将控制器的类设置为委托的类。例如,如果您有一个名为“MyDelegateClass”的 NSObject 子类,请将一个 Object 控制器拖到上面并将其类设置为“MyDelegateClass”。

      (2) 在 UITextView 的连接检查器中,按住 Control 单击 delegate 并将其连接到在步骤 (1) 中创建的控制器。

      就是这样。

      【讨论】:

      • 看起来很合理,但是现在当我运行应用程序时,每当我触摸 textView 时应用程序就会崩溃而没有警告......
      • 是的。当我使用 Rhult 谈到的textView.delegate = yourDelegateObject ; 方法时,该应用程序可以工作。
      • Rhult 的方法是程序化方法。这是我最常使用的一种,因为它很难在 IB 中发现错误。我以为您想知道如何在界面生成器中进行设置,这是这样做的正确方法。崩溃表明您仍然没有正确分配代表。请记住,您必须为表实现两个协议,一个委托和一个数据源。相同的类/实例可以实现两者,但您必须在 IB 中连接表 delegatedatasource 出口。
      • 抱歉,忘了这是关于 UITextView 及其委托而不是表格的帖子。一个文本视图只有一个委托。
      • 是的,:)。我会选择这个答案,但问题是我无法让它工作。我在 xib (1) 中创建了 MyDelegate 类的一个实例,并将 UITextView 的“委托”出口连接到 MyDelegate 实例。触摸 textView 后程序会立即崩溃。然而,这是问题的“正确”答案。
      【解决方案3】:

      如果您的意思是“我如何使使用代码创建的对象成为我的文本视图的委托”,只需设置委托属性(这就是在 Interface Builder 中拖动将为您做的事情):

      textView.delegate = yourDelegateObject;
      

      【讨论】:

      • 好的,但是,您知道为什么插座看起来像可以拖到小部件上吗?不能把outlet拖到一段代码上,为什么要这样设计?
      • 您可以在界面生成器中实例化任何对象,例如您将成为委托的对象,然后拖动该对象。如果您想这样做,只需从界面构建器面板(在对象和控制器下)创建一个“对象”,然后在身份检查器中将该类设置为您的类。加载 nib 时,您的类将被实例化,因此请确保不要在代码中也这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多