创建 UITextView 时,如何在实时视图中显示的 Swift Playgrounds(在 Xcode 上)的 UI 中隐藏键盘?
Posted
技术标签:
【中文标题】创建 UITextView 时,如何在实时视图中显示的 Swift Playgrounds(在 Xcode 上)的 UI 中隐藏键盘?【英文标题】:How can I hide the keyboard in the UI in Swift Playgrounds (on Xcode) that appears in the Live View when I create a UITextView? 【发布时间】:2018-03-29 13:17:06 【问题描述】:我创建了一个UITextView
对象,当我在Live View
中与它交互时,键盘出现在UI 中,输入文本的唯一方法似乎是从那个键盘。这是 Swift Playgrounds 的最新变化吗?用户可以通过物理键盘输入文本吗?
代码:
let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 1024, height: 768))
textView.textColor = .green
textView.font = UIFont(name: "Courier", size: 22)
textView.backgroundColor = .black
mainView.addSubview(textView)
【问题讨论】:
添加您的代码工作以正确地为您提供帮助。 【参考方案1】:您可以将手势识别器添加到超级视图,使用自定义关闭键盘方法分配操作并在其中调用textField.resignFirstResponder()
。
这是一个简单的例子:
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController
private var textView: UITextView?
override func loadView()
let view = UIView()
view.backgroundColor = .white
textView = UITextView()
if let textView = textView
textView.frame = CGRect(x: 150, y: 200, width: 200, height: 20)
textView.text = "Hello World!"
textView.textColor = .black
view.addSubview(textView)
self.view = view
override func viewDidLoad()
super.viewDidLoad()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(hideKeyboard))
self.view.addGestureRecognizer(tapGesture)
@objc func hideKeyboard()
textView?.resignFirstResponder()
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()
【讨论】:
嗨!感谢您的回答...我刚刚尝试过它,键盘仍然出现在 UI 中,并且 textView 不接受物理键盘的输入:/ 不幸的是,从 Xcode 9 开始,游乐场模拟器不再接受来自物理键盘的输入。如果你只是想隐藏键盘,你可以将 UITextView 的 inputView 设置为 UIView 并带有一个空框架。 好的,刚刚测试过。将 inputView 设置为带有空框的 UiView 会完全隐藏 UI 中的键盘....但 UITextView 仍然不接受输入形式的物理键盘(如您所述)。以上是关于创建 UITextView 时,如何在实时视图中显示的 Swift Playgrounds(在 Xcode 上)的 UI 中隐藏键盘?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iPhone 中动态更改 UITextView 中文本的字体大小
当新行添加到 UITextView 实例中时,如何向上滚动视图?