1

我有一个顶部有一个文本字段的视图,它下面有一个文本视图,文本视图下面有两个按钮。

键盘配置有“完成”按钮。一旦用户输入了他们的信息,他们点击文本视图下方的保存按钮。首先,他们单击完成以隐藏键盘(并显示保存按钮),然后单击保存按钮。

我需要在 textview 中允许回车,但“Return”已经被 Done 占用了。

当您需要返回键和隐藏键盘的能力时,通常如何处理?

4

2 回答 2

2

将一个按钮拖到您的视图中,删除文本,然后调整其大小以占据整个视图。在文档大纲中,选择新按钮并将其拖到元素列表的顶部。这会将其置于后台,因此它不会隐藏视图的元素。

将此代码添加到您的 ViewController:

@IBAction func hideKeyboard(sender: AnyObject) {
    self.textField.resignFirstResponder()
}

将按钮链接到此操作,一切就绪。

于 2015-03-22T06:35:18.977 回答
1

如果您正在使用 UINavigationBar 或有其他按钮或字段,则可以检测到激活任何这些 UIControls 并用于通过 resignFirstResponder() 关闭键盘。事实上 Save/Cancel/Done 是 UIBarButtonItems 并且是完成事物和改变状态的标准机制,并创建一个框架来完成你想要的。如果您不采用这种方法,那么您必须在如何做时发挥创意,并向用户明确需要做什么。

在 Interface Builder 中,您可以将主视图的类型从 UIView 更改为 UIControl,然后使用 addTarget() 将触摸事件检测为“触摸外部”区域,并使用这些操作也让第一响应者辞职。但是您可能需要考虑使用 UINavigationBar 或其他一些按钮栏或选项卡界面来进行状态转换。

另请查看iOS 人机界面指南文档。这是一个很好的文档,可以帮助您了解 iOS 是如何设计来处理您正在处理的常见情况的,并且它可以让您摆脱设计陈规。它写得很好,值得定期重温。

于 2015-03-22T06:32:44.397 回答