keyboard - swift playground UITextField 产生太大的键盘

标签 keyboard uitextfield swift-playground

Swift 在 Mac OS 上的操场上。当用户在 UItextfield 中单击时,会生成一个键盘,但它与 View 相比非常大,并且只有前几个键可用。

最小的例子:

import UIKit
import PlaygroundSupport

class TesterViewController : UIViewController {
var testTextField : UITextField!
override func loadView() {
    let view = UIView()
    view.backgroundColor = .white

    testTextField = UITextField()
    testTextField.borderStyle = .roundedRect
    testTextField.text = ""
    view.addSubview(testTextField)
    testTextField.translatesAutoresizingMaskIntoConstraints = false

    NSLayoutConstraint.activate([
        testTextField.topAnchor.constraint(equalTo: view.topAnchor, constant: 20),
        testTextField.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
        ])

    self.view = view
    }
}
PlaygroundPage.current.liveView = TesterViewController()

截屏
enter image description here

最佳答案

我面临同样的问题。似乎 Playground 的硬编码屏幕尺寸为 768x1024(在 Playground 中运行 UIScreen.main.bounds)并根据此尺寸显示键盘,而与实时 View 的实际尺寸无关。

我想出的最佳解决方法是增加 View Controller 的大小,使其与键盘匹配:

let vc = TesterViewController()
vc.preferredContentSize = vc.view.frame.size // or a custom CGSize
PlaygroundPage.current.liveView = vc

当然,这会使 View 比您希望的要大,所以我只在我真的必须访问屏幕键盘进行测试时才使用这种解决方法。

关于keyboard - swift playground UITextField 产生太大的键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46867712/

相关文章:

xcode - 获取 UITableView 滚动到选定的 UITextField 并避免被键盘隐藏

ios - IQKeyboardManager 在 subview 中不工作

ios - Xcode 6.4 Playground CPU 使用率极高

swift - 如何使用 Swift playground 显示带有一些绘图的 NSView?

java - 如何从 Android 设备的键盘上按下搜索按钮?

java - 如何确定黑莓手机上按下的是哪个键

ios - 在多个 UITextField 的数字键盘上显示完成按钮

c - 在 x11 中记录多个按键

iphone - 有没有办法确定何时在UITextField中输入语音文本?

ios - Playground 执行终止,因为 Playground 进程意外退出