【问题标题】:How can you create an accessoryInputView in a Storyboard design?如何在 Storyboard 设计中创建附件输入视图?
【发布时间】:2013-11-25 11:29:16
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios storyboard accessoryview


    【解决方案1】:

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

    我创建了一个新的 XIB,其中包含我想要的附件视图。我不知道如何分配 将inputAccessoryView直接导入到storyboard设计中,所以我做了以下操作。

    我将 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;
        ...
    }
    

    【讨论】:

    • 只是不确定我是否会为 3 个按钮而烦恼:/
    • 您可以将相同的inputAccessoryView 分配给多个按钮。
    • 在 GitHub 中构建示例以说明更好的方法
    【解决方案2】:

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

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

    它是左边的窗口。

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

    【讨论】:

    • 这个答案是一个隐藏的宝石。还有一种使用故事板视图的不同方式。
    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2016-03-15
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多