UITextfied
텍스트 키보드를 클릭 하는 동안 사용 하고 있지만 return키를 누를 때 키보드가 사라지지 않습니다. 다음 코드를 사용했습니다.
func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore.
{
return true;
}
resignfirstresponder 메소드가 작동하지 않습니다.
답변
다음 기능을 사용하여 앱이 키보드를 닫도록 할 수 있습니다
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
다음은이를 더 잘 설명하기위한 전체 예입니다.
//
// ViewController.swift
//
//
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var myTextField : UITextField
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.myTextField.delegate = self
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
}
코드 소스 : http://www.snip2code.com/Snippet/85930/swift-delegate-sample
답변
이것의 return true
일부는 텍스트 필드에 반환 허용 여부 만 알려줍니다.
키보드 (또는 첫 번째 응답자가 무엇이든)를 닫으려면 텍스트 필드에 수동으로 지시해야하며 이는 다음과 같이 수행됩니다 resignFirstResponder()
.
// Called on 'Return' pressed. Return false to ignore.
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
답변
-
UITextFieldDelegate
클래스 선언에 추가하십시오 .class ViewController: UIViewController, UITextFieldDelegate
-
textfield
프로그래밍 방식으로 연결 또는 작성@IBOutlet weak var userText: UITextField!
-
뷰에서 위임 된 텍스트 필드가로드 될 때 뷰 컨트롤러를 설정하십시오.
override func viewDidLoad() { super.viewDidLoad() self.userText.delegate = self }
-
다음 기능을 추가하십시오
func textFieldShouldReturn(userText: UITextField!) -> Bool { userText.resignFirstResponder() return true; }
이 모든 것을 사용하면 키보드는 텍스트 필드 외부를 터치하고 return 키를 눌러 해제합니다.
답변
스위프트 4.2-델리게이트 불필요
UITextField에서 ” 1 차 조치 트리거 “에 대한 조치 아울렛을 작성하고 전달 된 송신자 매개 변수에서 첫 번째 응답자를 사임 할 수 있습니다.
@IBAction func done(_ sender: UITextField) {
sender.resignFirstResponder()
}
매우 간단합니다.
( https://youtu.be/v6GrnVQy7iA 에 대해 알려 주신 Scott Smith의 60 초 비디오에 감사드립니다 )
답변
Simple Swift 3 솔루션 :이 기능을 텍스트 필드가있는 뷰 컨트롤러에 추가하십시오.
@IBAction func textField(_ sender: AnyObject) {
self.view.endEditing(true);
}
그런 다음 보조 편집기를 열고 Main.storyboard가보기의 한쪽에 있고 원하는 view controller.swift 파일이 다른쪽에 있는지 확인하십시오. 텍스트 필드를 클릭 한 다음 오른쪽 유틸리티 패널에서 ‘연결 관리자 표시’탭을 선택하십시오. ‘끝낼 때 끝’에서 빠른 파일의 위 기능으로 드래그를 제어하십시오. 해당 장면의 다른 텍스트 필드에 대해 반복하고 동일한 기능에 연결하십시오.
답변
@RSC
나를 위해 Xcode 버전 6.2 (6C86e)의 중요한 추가 기능은 다음과 같습니다. override func viewDidLoad()
self.input.delegate = self;
RSC 게시물을 찾을 때까지 몇 시간 동안 리턴 키를 사용하려고 시도했습니다. 감사합니다!
또한 화면의 다른 곳을 터치하면 키보드를 숨기려면 :
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.view.endEditing(true);
}
답변
자동 키보드 해제를 얻으려면이 코드를 사용자 정의 텍스트 필드 클래스의 메소드 중 하나에 넣습니다.
textField.addTarget(nil, action:"firstResponderAction:", forControlEvents:.EditingDidEndOnExit)
콘센트 이름을로 바꿉니다 textField
.