iPhone을 입력하는 동안 UITextField의 텍스트를 얻는 방법은 무엇입니까?
UITextField
에 대한 변경 사항을 별도의 UILabel
. UITextField
사용자 가 입력 한 각 문자 이후 의 전체 텍스트를 사용하는 방법이 ? 현재이 방법을 사용하고 사용자가 입력 한 마지막 문자를 사용하지 않습니다.
UITextView
"didChange"가 메서드 있다는 것을 알고 있지만 UITextField
.
//does not capture the last character
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self updateTextLabelsWithText: textField.text];
return YES;
}
각 문자를 입력 한 후 UITextField에서 텍스트를 가져 오려면 어떻게해야합니까?
감사합니다!
- 먼저 하나를 추가
UITextField
하고UILabel
스토리 보드 / 펜촉에 - 할당 이제
IBOutlet
하십시오UILabel
(여기서는 myLabel 을 사용 했습니다 ) UITextFieldDelegate
파일 소유자에게 할당 하고 .h 파일에서 동일한 대리를 구현합니다.다음 코드 줄을 사용하십시오.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; [self updateTextLabelsWithText: newString]; return YES; } -(void)updateTextLabelsWithText:(NSString *)string { [myLabel setText:string]; }
도움이 되셨기를 바랍니다.
"Editing Changed"이벤트를 처리하기 만하면됩니다.
[textField addTarget:self
action:@selector(editingChanged:)
forControlEvents:UIControlEventEditingChanged];
및 선택기 :
-(void) editingChanged:(id)sender {
// your code
}
이 작업을 수동으로 수행하거나 "Editing changed"전송 된 이벤트를 Ctrl 키를 함께 사용할 채로 .h로 끌어서 editingChanged 메서드를 생성하여 스토리 보드를 사용할 수 있습니다.
Swift 2.0 이상
class CheckInViewController: UIViewController, UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
yourTextField.delegate = self
}
func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool {
var updatedTextString : NSString = textField.text as NSString
updatedTextString = updatedTextString.stringByReplacingCharactersInRange(range, withString: string)
self.methodYouWantToCallWithUpdatedString(updatedTextString)
return true
}
}
개척 개척자에게 도움이되기를 바랍니다.
addTarget Swift 2.0+를 사용 Swift
titleTextField.addTarget(self, action: #selector(textFieldTyping), forControlEvents: .EditingChanged)
그리고 구현 selector
func textFieldTyping(textField:UITextField)
{
//Typing
}
Swift 3.0에서 :
기존의 솔루션 중 일부는 한 문자 중개인 이전 버전의 Swift 및 Obj-C 용이었습니다. 다음은 Swift 3.0에 사용하는 것입니다.
수업에서 텍스트를 자리 표시 표시했습니다.
var tempName = ""
ViewDidLoad에서 다음을 사용했습니다.
nameField.addTarget(self, action: #selector(typingName), for: .editingChanged)
그런 다음 다음과 같은 함수를 만들었습니다.
func typingName(textField:UITextField){
if let typedText = textField.text {
tempName = typedText
print(tempName)
}
}
Swift 3.0+ : 이것은 저에게 매우 잘 작동했습니다.
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
self.yourLabel.text = "\(textField.text ?? "")\(string)"
return true
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == yourTextFieldOutletName
{
if yourTextFieldOutletName.isEmpty == false
{
youtlabelname.text = yourTextFieldOutletName.text!
}
}
return true
}
func textViewDidEndEditing(_ textView: UITextView) {
if textField == yourTextFieldOutletName
{
if yourTextFieldOutletName.isEmpty == false
{
youtlabelname.text = yourTextFieldOutletName.text!
}
}
}
참고 URL : https://stackoverflow.com/questions/10363856/iphone-how-to-get-uitextfields-text-while-typing
'ProgramingTip' 카테고리의 다른 글
1D 또는 2D 어레이, 무엇이 더 빠릅니까? (0) | 2020.12.02 |
---|---|
WPF 버튼의 여러 줄 텍스트 (0) | 2020.12.02 |
Cocoapods 설치 오류 (0) | 2020.12.02 |
imageView의 모서리 반경을 설정하는 방법은 무엇입니까? (0) | 2020.12.02 |
JavaScript의 속성 값을 배열로 선택해야합니까? (0) | 2020.12.02 |