【发布时间】:2013-11-25 11:29:16
【问题描述】:
我正在尝试创建一个附件输入视图,以使用一些特定于应用程序的键来增强键盘。
我正在使用基于 Storyboard 的设计方法将 UI 与应用程序逻辑分开。
我似乎无法理解如何创建新视图并将其与 textView 关联。有可能吗?
【问题讨论】:
标签: ios storyboard accessoryview
我正在尝试创建一个附件输入视图,以使用一些特定于应用程序的键来增强键盘。
我正在使用基于 Storyboard 的设计方法将 UI 与应用程序逻辑分开。
我似乎无法理解如何创建新视图并将其与 textView 关联。有可能吗?
【问题讨论】:
标签: ios storyboard accessoryview
如果其他人试图这样做,让我记录一下我最终做了什么。
我创建了一个新的 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;
...
}
【讨论】:
inputAccessoryView 分配给多个按钮。
您可以从 Apple 查看此示例项目: https://developer.apple.com/library/ios/samplecode/KeyboardAccessory/Introduction/Intro.html
要获得与示例中相同的结果,您必须在故事板打开时将 UIView 实例拖放到“文档大纲”窗口中。
它是左边的窗口。
然后您必须在控制器中创建一个 IBOutlet 来访问视图并将其设置为 inputAccessoryView。
【讨论】: