如何在Storyboard设计中创建accessoryInputView?

我正在尝试创建一个accessoryInputView来增加键盘的一些特定于应用程序的键。

我使用基于Storyboard的设计方法来保持UI与应用程序逻辑分离。

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

如果其他人试图这样做,让我记录我最终做的事情。

我用它想要的accessoryView创建了一个新的XIB。 我无法弄清楚如何将inputAccessoryView直接分配到故事板设计中,所以我做了以下操作。

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

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

viewDidLoad中的代码如下所示:

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

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

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

它是左边的窗口。

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