2017-10-21 143 views
2

Mac OS操作系統上的Swift。當用戶在UItextfield中單擊時,鍵盤會產生,但與視圖相比非常大,並且只有前幾個鍵可用。swift playground UITextField會產生太大的鍵盤

小例子:

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

回答

4

我面臨着同樣的問題。看起來好像Playground具有768x1024的硬編碼屏幕尺寸(在Playground中運行UIScreen.main.bounds),並根據此大小顯示鍵盤,而與實時視圖的實際大小無關。

我想出了最好的解決方法是增加視圖控制器的尺寸,使其與鍵盤相匹配:

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

當然,這使得查看大圖可能比你希望它是,這樣當我真的需要訪問屏幕鍵盤進行測試時,我才使用這種解決方法。

+0

這太好了。謝謝。令人沮喪的是,你無法改變遊樂場的規模,但是現在這個解決方法是可以的。我創建了一個與UIScreen.main.bounds相匹配的自定義CGsize,並將其用作我的首選內容大小。有沒有更好的方式將用戶文本導入到UItextfield中? –