8

我正在尝试创建一个附件输入视图,以使用一些特定于应用程序的键来增强键盘。

我正在使用基于 Storyboard 的设计方法将 UI 与应用程序逻辑分开。

我似乎无法理解如何创建新视图并将其与 textView 关联。可能吗?

4

2 回答 2

12

您可以从 Apple 查看此示例项目: https ://developer.apple.com/library/ios/samplecode/KeyboardAccessory/Introduction/Intro.html

要获得与示例中相同的结果,您必须在故事板打开时将 UIView 实例拖放到“文档大纲”窗口中。

它是左边的窗口。

然后你必须在你的控制器中创建一个 IBOutlet 来访问视图并将其设置为 inputAccessoryView。

在此处输入图像描述

于 2016-06-18T11:19:52.697 回答
5

如果其他人试图这样做,让我记录一下我最终做了什么。

我用我想要的附件视图创建了一个新的 XIB。我不知道如何将 inputAccessoryView 直接分配到情节提要设计中,所以我做了以下操作。

我将 XIB 的 fileOwner 作为控制器类,其中包含需要附件视图的 textView,并将视图分配给该类中的 IBOutlet。这允许我加载 XIB 并将其自动分配给 IBOutlet。

然后在 viewDidLoad 中,我将 IBOutlet 分配给需要它的 textView。它运行良好,允许我在 IB 中完成所有 UI 工作并将逻辑保留在控制器中。我想我可以考虑将 inputAccessoryView 设置为“逻辑”而不是 UI 设计,并认为这是一个很好的设计。不是很出色,因为 IB 不允许直接从 XIB 设置 inputAccessoryView 或在故事板中创建不属于应用程序流程的视图。

viewDidLoad 中的代码如下所示:

- (void) viewDidLoad
{
    ...   
    [super viewDidLoad];
    [[NSBundle mainBundle] loadNibNamed:@"NoteInputAccessoryView" owner:self options:nil];

    _noteTextView.inputAccessoryView=_noteInputAccessoryView;
    ...
}
于 2013-12-04T01:04:27.533 回答