2017-10-21 23 views
2

Mac OS의 놀이터에서 스위프트. 사용자가 UItext 필드를 클릭하면 키보드가 생성되지만보기에 비해 매우 커서 첫 번째 키만 사용할 수 있습니다.스위프트 놀이터 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

I은 ​​동일한 문제에 직면한다. Playground에 768x1024의 하드 코딩 된 화면 크기 (놀이터에서 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에 사용자 텍스트를 추가하는 더 좋은 방법이 있습니까? –