如何在Storyboard设计中创建附件输入视图?

时间:2013-11-13 02:19:58

标签: ios storyboard accessoryview

我正在尝试使用一些特定于应用程序的密钥来创建一个accessoryInputView来扩充键盘。

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

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

2 个答案:

答案 0 :(得分:5)

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

我用我想要的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;
    ...
}

答案 1 :(得分:5)

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

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

这是左边的窗口。

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

enter image description here