Tag: 输入

iOS上的可选只读多行文本字段

在使用iOS移动应用程序时,我遇到了一项业务需求,即允许用户从长文本字段复制部分数据,而又不让他修改内容。 这是我要实现的目标 这是我使用UITextView 该解决方案包括三个简单步骤: 阻止文本编辑但保留文本选择 2.让UITextView调整其高度以适合所有内容 3.删除UITextView文本填充,使其看起来更像UILabel 查看有关如何在本机Android和Xamarin.Forms上实现此行为的相关文章。

使用语音框架的自定义语音交互器

步骤2:设计UI 现在,在我们的默认视图控制器中添加一些UI元素。 TextView:显示语音输入的文本输出,并接受文本输入进行语音合成。 “听我的家伙”按钮 :开始收听。 “可以说”按钮 :将您输入的文本合成为语音消息。 步骤3:申请权限 为了安全起见,要访问任何硬件,该应用必须获得用户的许可。 只需转到Info.plist文件>>添加新行>>搜索“隐私-语音识别用法说明” >>提供一些获得用户许可的有效理由。 只是忽略我的理由😉 重复上述步骤,这一次是“隐私-麦克风使用说明”。 步骤4:添加语音框架 下一步,也许是最重要的步骤是在我们的项目中添加Speech Framework。 为此,只需单击项目文件>>向下滚动到“链接的框架和库” >>单击微小的“ +”按钮>>搜索“语音” >>单击“添加”按钮。 现在我们已经完成了配置和UI工作。 让我们开始编码。 步骤5:定义对象 为了使我们的应用能够进行语音输入,我们必须初始化以下四个属性。 让我们看看它们的作用是什么。 ognitionRequest: 音频缓冲区将传递给RecognitionTask对象。 ognitionTask :执行语音识别并检索结果的任务。 audioEngine : 连接的AVAudioNode组(稍后再讨论)。 步骤6:添加方法StartListening() 现在,创建一个名称为“ startListening”的方法。 在方法startListening()中添加以下行 在第一行中,我们正在创建SFSpeechRecognizer类的实例。 它基本上告诉RecognitionTask 识别本地/语言的语音输入。 在下一行中,我们正在初始化我们的RecognitionRequest。 第三行,我们正在检查是否成功初始化了ognitionRequest ,如果没有成功则返回致命错误。 步骤7:添加节点 让我们继续前进,并在我们的startListening()方法中添加更多行。 audioEngine!.inputNode返回引擎的单例输入节点。 现在什么是“ inputNode ”? 简单来说,它是用于执行音频信号生成,处理或输入/输出任务的缓冲区。 步骤8:启动音频引擎 让我们添加更多代码。 您在上面的代码中所做的就是准备您的audioEngine实例。 然后启动它以接受来自RecognitionTask的语音输入。 如果失败,则打印错误消息。 步骤9:开始任务识别 […]