수색…


소개

UITextField는 UIKit 프레임 워크의 일부이며 화상 키보드를 사용하여 사용자로부터 텍스트 입력을 수집하는 영역을 표시하는 데 사용됩니다

통사론

  • UITextField.text : String // 필드에 표시 할 텍스트를 가져 오거나 설정합니다.
  • UITextField.attributedText : NSAttributedString // 필드에 표시된 속성있는 텍스트를 가져 오거나 설정합니다.
  • UITextField.textColor : UIColor // 필드의 텍스트 색상을 가져 오거나 설정합니다.
  • UITextField.font : UIFont // 필드의 텍스트 폰트를 얻거나 설정합니다.
  • UITextField.textAlignment : NSTextAlignment // 기본값은 NSLeftTextAlignment입니다.
  • UITextField.borderStyle : UITextBorderStyle // 기본값은 UITextBorderStyleNone입니다. UITextBorderStyleRoundedRect로 설정하면 사용자 정의 배경 이미지가 무시됩니다.
  • UITextField.placeholder : String // default는 nil입니다. 문자열은 70 % 회색으로 그려진다.
  • UITextField.attributedPlaceholder : NSAttributedString // 필드의 고유 한 자리 표시 자 가져 오기 또는 설정
  • UITextField.clearsOnBeginEditing : Bool // 기본값은 NO입니다. 클릭 한 위치로 커서를 이동합니다. 예이면 모든 텍스트가 지워집니다.
  • UITextField.adjustsFontSizeToFitWidth : Bool // 기본값은 NO입니다. 예인 경우 텍스트는 기준선을 따라 minFontSize로 축소됩니다.
  • UITextField.minimumFontSize : CGFloat // 기본값은 0.0입니다. 실제 최소값은 읽을 수있는 값으로 고정 될 수 있습니다. adjustsFontSizeToFitWidth가 YES 인 경우에 사용됩니다.
  • UITextField.delegate : UITextFieldDelegate? // 기본값은 nil입니다. 약한 참조
  • UITextField.clearButtonMode : UITextFieldViewMode // clear 버튼이 표시되면 설정합니다. 기본값은 UITextFieldViewModeNever입니다.
  • UITextField.leftView : UIView? // 예 : 돋보기
  • UITextField.leftViewMode : UITextFieldViewMode // 왼쪽 뷰가 표시 될 때 설정합니다. 기본값은 UITextFieldViewModeNever입니다.
  • UITextField.rightView : UIView? // 예 : 북마크 버튼
  • UITextField.rightViewMode : UITextFieldViewMode // 오른쪽 뷰가 표시되면 설정합니다. 기본값은 UITextFieldViewModeNever입니다.
  • UITextField.inputView : UIView? // 객체가 첫 번째 응답자가 될 때 표시됩니다. nil로 설정하면 다음 응답 체인으로 되돌립니다. 첫 번째 응답자가 설정되어 있으면 reloadInputViews가 호출 될 때까지 적용되지 않습니다.
  • UITextField.inputAccessoryView : UIView?
  • UITextField.isSecureTextEntry : Bool // 예 : 필드에 암호 또는 카드 번호와 같은 기밀 입력이 포함 된 경우

텍스트 필드 초기화

빠른

let frame = CGRect(x: 0, y: 0, width: 100, height: 100)
let textField = UITextField(frame: frame)

목표 -C

CGRect *frame = CGRectMake(0, 0, 100, 100);
UITextField *textField = [[UITextField alloc] initWithFrame:frame];

인터페이스 빌더

스토리 보드에서 UITextField 를 오브젝트 라이브러리에서 드래그하여 추가 할 수도 있습니다.

스크린 샷

입력 액세서리보기 (툴바)

키보드 위에 액세서리보기를 추가하십시오. 이것은 일반적으로 다음 / 이전 단추를 추가하거나 완료 / 제출과 같은 추가 단추 (특히 내장 된 반환 키가없는 숫자 / 전화 / 십진수 패드 키보드 유형의 경우)에 사용됩니다.

빠른

let textField = UITextField() // initialized however

let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 0)

let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)

let doneButton = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: Selector("done"))

let items = [flexibleSpace, doneButton]  // pushes done button to right side

toolbar.setItems(items, animated: false) // or toolbar.items = ...
toolbar.sizeToFit()

textField.inputAccessoryView = toolbar

목표 -C

UITextField *textField = [[UITextField alloc] init];

UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 0)];

UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
NSArray *items = @[
                   flexibleSpace,
                   doneButton
                   ];

[toolbar setItems:items];
[toolbar sizeToFit];

textField.inputAccessoryView = toolbar;

자기 자본화

빠른

textField.autocapitalizationType = .None

목표 -C

textField.autocapitalizationType = UITextAutocapitalizationTypeNone;

모든 옵션 :

  • .None \ UITextAutocapitalizationTypeNone : 아무것도 autocapitalize하지 마십시오
  • .Words \ UITextAutocapitalizationTypeWords : 모든 단어 자동 완성
  • .Sentences \ UITextAutocapitalizationTypeSentences : 문장의 첫 단어 자동 완성
  • .AllCharacters \ UITextAutocapitalizationTypeAllCharacters : 모든 문자 자동 대문자 화 (즉, 대문자 잠금)

키보드 닫기

빠른

Ctrl + MainStoryboard의 UItext 필드에서 ViewController 클래스로 드래그하고 UITextField 아울렛을 만듭니다.

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

그런 다음 UItextField를 다시 선택하고 ViewController 클래스에서 Ctrl 키를 누른 상태에서 드래그합니다. 이번에는 작업 연결을 선택하고 저장소에서 Did End Exit 를 선택하고 연결을 클릭합니다.

방금 만든 작업에서 UItextField .resignFirstResponder() 의 이름을 입력하십시오.

   @IBAction func textFieldResign(sender: AnyObject) {
        yourTextFieldName.resignFirstResponder()
    }

이것은 키보드의 리턴 키를 누를 때 키보드를 감추는 것을 처리 할 것입니다.

Return 키를 누를 때 키보드를 숨기는 또 다른 예는 다음과 같습니다.

UIViewController 옆에 UITextFieldDelegate 프로토콜을 추가합니다.

vieDidLoad 함수에서 self.yourTextFieldName.delegate = self 추가합니다.

그리고 마지막으로 우리는 이것을

func textFieldShouldReturn(textField: UITextField) -> Bool {
                yourTextFieldName.resignFirstResponder()
                return true
            }

최종 코드는 다음과 같습니다.

class ViewController: UIViewController, UITextFieldDelegate  {

@IBOutlet var textField: UITextField!

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?){
    view.endEditing(true)
    super.touchesBegan(touches, withEvent: event)
}


override func viewDidLoad() {
    super.viewDidLoad()
    self.textField.delegate = self
        }

}

목표 -C

[textField resignFirstResponder];

정렬 설정

빠른

textField.textAlignment = .Center 

목표 -C

[textField setTextAlignment: NSTextAlignmentCenter];

이 예제에서는 NSTextAlignment 를 center로 설정했습니다. 당신은 또한에 설정할 수 있습니다 .Left , .Right , .Justified.Natural .

.Natural 은 현재 지역화의 기본 정렬입니다. 왼쪽에서 오른쪽으로 쓰는 언어 (예 : 영어)의 경우 정렬은. .Left . 오른쪽에서 왼쪽으로 쓰는 언어 .Right .

KeyboardType

키보드의 모양을 변경하려면 모든 UITextFields 속성에서 다음 유형을 개별적으로 설정할 수 있습니다. keyboardType

typedef NS_ENUM(NSInteger, UIKeyboardType) {
    UIKeyboardTypeDefault,                // Default type for the current input method.
    UIKeyboardTypeASCIICapable,           // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
    UIKeyboardTypeNumbersAndPunctuation,  // Numbers and assorted punctuation.
    UIKeyboardTypeURL,                    // A type optimized for URL entry (shows . / .com prominently).
    UIKeyboardTypeNumberPad,              // A number pad (0-9). Suitable for PIN entry.
    UIKeyboardTypePhonePad,               // A phone pad (1-9, *, 0, #, with letters under the numbers).
    UIKeyboardTypeNamePhonePad,           // A type optimized for entering a person's name or phone number.
    UIKeyboardTypeEmailAddress,           // A type optimized for multiple email address entry (shows space @ . prominently).
    UIKeyboardTypeDecimalPad NS_ENUM_AVAILABLE_IOS(4_1),   // A number pad with a decimal point.
    UIKeyboardTypeTwitter NS_ENUM_AVAILABLE_IOS(5_0),      // A type optimized for twitter text entry (easy access to @ #)
    UIKeyboardTypeWebSearch NS_ENUM_AVAILABLE_IOS(7_0),    // A default keyboard type with URL-oriented addition (shows space . prominently).

    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated
};

UITextView가 첫 번째 응답자가되면 스크롤 이동

UIKeyboardWillShowNotificationUIKeyboardWillHideNotification 알림을 관찰하고 키보드 높이에 따라 scrollView 내용 인세 UIKeyboardWillHideNotification 를 업데이트 한 다음 포커스가있는 컨트롤로 스크롤합니다.

- (void)viewDidLoad 
{
    [super viewDidLoad];

    // register for keyboard notifications
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(keyboardWillShow:) 
                                                 name:UIKeyboardWillShowNotification 
                                               object:self.view.window];
    // register for keyboard notifications
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(keyboardWillHide:) 
                                                 name:UIKeyboardWillHideNotification 
                                               object:self.view.window];
}

// Called when UIKeyboardWillShowNotification is sent
- (void)keyboardWillShow:(NSNotification*)notification
{
    // if we have no view or are not visible in any window, we don't care
    if (!self.isViewLoaded || !self.view.window) {
        return;
    }
    
    NSDictionary *userInfo = [notification userInfo];
    
    CGRect keyboardFrameInWindow;
    [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardFrameInWindow];
    
    // the keyboard frame is specified in window-level coordinates. this calculates the frame as if it were a subview of our view, making it a sibling of the scroll view
    CGRect keyboardFrameInView = [self.view convertRect:keyboardFrameInWindow fromView:nil];
    
    CGRect scrollViewKeyboardIntersection = CGRectIntersection(_scrollView.frame, keyboardFrameInView);
    UIEdgeInsets newContentInsets = UIEdgeInsetsMake(0, 0, scrollViewKeyboardIntersection.size.height, 0);
    
    // this is an old animation method, but the only one that retains compaitiblity between parameters (duration, curve) and the values contained in the userInfo-Dictionary.
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:[[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
    [UIView setAnimationCurve:[[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]];
    
    _scrollView.contentInset = newContentInsets;
    _scrollView.scrollIndicatorInsets = newContentInsets;
    
    /*
     * Depending on visual layout, _focusedControl should either be the input field (UITextField,..) or another element
     * that should be visible, e.g. a purchase button below an amount text field
     * it makes sense to set _focusedControl in delegates like -textFieldShouldBeginEditing: if you have multiple input fields
     */
    if (_focusedControl) {
        CGRect controlFrameInScrollView = [_scrollView convertRect:_focusedControl.bounds fromView:_focusedControl]; // if the control is a deep in the hierarchy below the scroll view, this will calculate the frame as if it were a direct subview
        controlFrameInScrollView = CGRectInset(controlFrameInScrollView, 0, -10); // replace 10 with any nice visual offset between control and keyboard or control and top of the scroll view.
        
        CGFloat controlVisualOffsetToTopOfScrollview = controlFrameInScrollView.origin.y - _scrollView.contentOffset.y;
        CGFloat controlVisualBottom = controlVisualOffsetToTopOfScrollview + controlFrameInScrollView.size.height;
        
        // this is the visible part of the scroll view that is not hidden by the keyboard
        CGFloat scrollViewVisibleHeight = _scrollView.frame.size.height - scrollViewKeyboardIntersection.size.height;
        
        if (controlVisualBottom > scrollViewVisibleHeight) { // check if the keyboard will hide the control in question
            // scroll up until the control is in place
            CGPoint newContentOffset = _scrollView.contentOffset;
            newContentOffset.y += (controlVisualBottom - scrollViewVisibleHeight);
            
            // make sure we don't set an impossible offset caused by the "nice visual offset"
            // if a control is at the bottom of the scroll view, it will end up just above the keyboard to eliminate scrolling inconsistencies
            newContentOffset.y = MIN(newContentOffset.y, _scrollView.contentSize.height - scrollViewVisibleHeight);
            
            [_scrollView setContentOffset:newContentOffset animated:NO]; // animated:NO because we have created our own animation context around this code
        } else if (controlFrameInScrollView.origin.y < _scrollView.contentOffset.y) {
            // if the control is not fully visible, make it so (useful if the user taps on a partially visible input field
            CGPoint newContentOffset = _scrollView.contentOffset;
            newContentOffset.y = controlFrameInScrollView.origin.y;
            
            [_scrollView setContentOffset:newContentOffset animated:NO]; // animated:NO because we have created our own animation context around this code
        }
    }
    
    [UIView commitAnimations];
}


// Called when the UIKeyboardWillHideNotification is sent
- (void)keyboardWillHide:(NSNotification*)notification
{
    // if we have no view or are not visible in any window, we don't care
    if (!self.isViewLoaded || !self.view.window) {
        return;
    }
    
    NSDictionary *userInfo = notification.userInfo;
    
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:[[userInfo valueForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
    [UIView setAnimationCurve:[[userInfo valueForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]];
    
    // undo all that keyboardWillShow-magic
    // the scroll view will adjust its contentOffset apropriately
    _scrollView.contentInset = UIEdgeInsetsZero;
    _scrollView.scrollIndicatorInsets = UIEdgeInsetsZero;
    
    [UIView commitAnimations];
}

키보드 집중 및 키보드 숨기기

포커스 얻기

빠른

textField.becomeFirstResponder()

목표 -C

[textField becomeFirstResponder];

사직하다

빠른

textField.resignFirstResponder()

목표 -C

[textField resignFirstResponder];

키보드를 UIPickerView로 바꾸십시오.

경우에 따라 키보드 대신 UITextField 대해 미리 정의 된 내용으로 사용자에게 UIPickerView 를 표시하려고합니다.

사용자 지정 UIPickerView 만들기

우선 UIPickerViewDataSourceUIPickerViewDelegate 프로토콜을 준수하는 UIPickerView 대한 사용자 정의 래퍼 클래스가 필요합니다.

class MyPickerView: UIPickerView, UIPickerViewDataSource, UIPickerViewDelegate

DataSource 및 Delegate에 대해 다음 메소드를 구현해야합니다.

public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    if data != nil {
        return data!.count
    } else {
        return 0
    }
}

public func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 1
}

public func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    if data != nil {
        return data![row]
    } else {
        return ""
    }
}

데이터를 처리하기 위해 MyPickerViewselectedValuetextFieldBeingEdited 속성 data 필요합니다.

/**
 The data for the `UIPickerViewDelegate`

 Always needs to be an array of `String`! The `UIPickerView` can ONLY display Strings
 */
public var data: [String]? {
    didSet {
        super.delegate = self
        super.dataSource = self
        self.reloadAllComponents()
    }
}

/**
 Stores the UITextField that is being edited at the moment
 */
public var textFieldBeingEdited: UITextField?

/**
 Get the selected Value of the picker
 */
public var selectedValue: String {
    get {
        if data != nil {
            return data![selectedRow(inComponent: 0)]
        } else {
            return ""
        }
    }
}

ViewController 준비하기

textField가 포함 된 ViewController 는 사용자 지정 UIPickerView 대한 속성이 있어야합니다. (여러분이 이미 textField를 포함하고있는 또 다른 속성이나 @IBOutlet 을 가지고 있다고 가정 할 때)

/**
 The picker view to present as keyboard
 */
var picker: MyPickerView?

viewDidLoad() 에서 picker 를 초기화하고 비트를 구성해야합니다.

picker = MyPickerView()
picker?.autoresizingMask = [.flexibleHeight, .flexibleWidth]
picker?.backgroundColor = UIColor.white()

picker?.data = ["One", "Two", "Three", "Four", "Five"] //The data shown in the picker

이제 inputViewUITextFieldMyPicker 로 추가 할 수 있습니다.

textField.inputView = picker

피커 키보드 닫기

자, 키보드를 UIPickerView 로 대체했으나이를 UIPickerView 수는 없습니다. 이 작업은 사용자 지정 .inputAccessoryView 사용하여 수행 할 수 있습니다.

ViewController pickerAccessory 속성을 추가하십시오.

/**
 A toolbar to add to the keyboard when the `picker` is presented.
 */
var pickerAccessory: UIToolbar?

viewDidLoad() 에서 inputAccessoryView 대한 UIToolbar 를 만들어야합니다.

pickerAccessory = UIToolbar()
pickerAccessory?.autoresizingMask = .flexibleHeight

//this customization is optional
pickerAccessory?.barStyle = .default
pickerAccessory?.barTintColor = UIColor.red()
pickerAccessory?.backgroundColor = UIColor.red()
pickerAccessory?.isTranslucent = false

툴바의 프레임을 설정해야합니다. iOS 디자인에 맞게 44.0 높이를 사용하는 것이 좋습니다.

var frame = pickerAccessory?.frame
frame?.size.height = 44.0
pickerAccessory?.frame = frame!

사용자 만족도를 높이려면 두 개의 버튼 ( "완료"및 "취소")을 추가해야하지만 키보드를 닫는 버튼 하나만 사용할 수도 있습니다.

let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ViewController.cancelBtnClicked(_:)))
cancelButton.tintColor = UIColor.white()
let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) //a flexible space between the two buttons
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(ViewController.doneBtnClicked(_:)))
doneButton.tintColor = UIColor.white()

//Add the items to the toolbar    
pickerAccessory?.items = [cancelButton, flexSpace, doneButton]

이제 툴바를 inputAccessoryView 로 추가 할 수 있습니다.

textField.inputAccessoryView = pickerAccessory

프로젝트를 빌드하기 전에 메서드를 구현해야하며 버튼이 호출합니다.

/**
 Called when the cancel button of the `pickerAccessory` was clicked. Dismsses the picker
 */
func cancelBtnClicked(_ button: UIBarButtonItem?) {
    textField?.resignFirstResponder()
}

/**
 Called when the done button of the `pickerAccessory` was clicked. Dismisses the picker and puts the selected value into the textField
 */
func doneBtnClicked(_ button: UIBarButtonItem?) {
    textField?.resignFirstResponder()
    textField.text = picker?.selectedValue
}

프로젝트를 실행하고 textField 탭하면 키보드 대신 다음과 같은 선택기가 표시됩니다.

피커 예제

프로그래밍 방식으로 값 선택 (선택 사항)

첫 번째 행을 자동으로 선택하지 않으려면 UIPickerView 에서와 같이 선택한 행을 설정할 수 있습니다.

picker?.selectRow(3, inComponent: 0, animated: false) //Will select the row at index 3

사용자가 돌아 가기 버튼을 누르면 키보드가 닫힙니다.

텍스트 필드에 대한 텍스트 편집을 관리하기 위해보기 컨트롤러를 설정하십시오.

class MyViewController: UITextFieldDelegate {

    override viewDidLoad() {
        super.viewDidLoad()
        
        textField.delegate = self
    }

}

textFieldShouldReturn 은 키보드의 반환 버튼을 누를 때마다 호출됩니다.

빠른:

func textFieldShouldReturn(textField: UITextField) -> Bool {
    textField.resignFirstResponder()    
    return true;
}

목표 -C :

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
   [textField resignFirstResponder];
   return true;
}

커서 위치 가져 오기 및 설정

유용한 정보

텍스트 필드 텍스트의 맨 처음 :

let startPosition: UITextPosition = textField.beginningOfDocument

텍스트 필드의 맨 마지막 부분 :

let endPosition: UITextPosition = textField.endOfDocument

현재 선택된 범위 :

let selectedRange: UITextRange? = textField.selectedTextRange

커서 위치 가져 오기

if let selectedRange = textField.selectedTextRange {
    
    let cursorPosition = textField.offsetFromPosition(textField.beginningOfDocument, toPosition: selectedRange.start)
    
    print("\(cursorPosition)")
}

커서 위치 설정

위치를 설정하기 위해 이러한 모든 메소드는 실제로 시작 및 끝 값이 같은 범위를 설정합니다.

처음에는

let newPosition = textField.beginningOfDocument
textField.selectedTextRange = textField.textRangeFromPosition(newPosition, toPosition: newPosition)

끝까지

let newPosition = textField.endOfDocument
textField.selectedTextRange = textField.textRangeFromPosition(newPosition, toPosition: newPosition)

현재 커서 위치의 왼쪽에있는 한 위치

// only if there is a currently selected range
if let selectedRange = textField.selectedTextRange {
    
    // and only if the new position is valid
    if let newPosition = textField.positionFromPosition(selectedRange.start, inDirection: UITextLayoutDirection.Left, offset: 1) {
        
        // set the new position
        textField.selectedTextRange = textField.textRangeFromPosition(newPosition, toPosition: newPosition)
    }
}

임의의 위치로

처음부터 시작하여 오른쪽으로 5 자 이동하십시오.

let arbitraryValue: Int = 5
if let newPosition = textField.positionFromPosition(textField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: arbitraryValue) {
    
    textField.selectedTextRange = textField.textRangeFromPosition(newPosition, toPosition: newPosition)
}

관련

모든 텍스트 선택

textField.selectedTextRange = textField.textRangeFromPosition(textField.beginningOfDocument, toPosition: textField.endOfDocument)

텍스트 범위 선택

// Range: 3 to 7
let startPosition = textField.positionFromPosition(textField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: 3)
let endPosition = textField.positionFromPosition(textField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: 7)

if startPosition != nil && endPosition != nil {
    textField.selectedTextRange = textField.textRangeFromPosition(startPosition!, toPosition: endPosition!)
}

현재 커서 위치에 텍스트 삽입

textField.insertText("Hello")

노트

  • 이 예제는 원래이 스택 오버 플로우 해답 에서 왔습니다.

  • 이 대답은 텍스트 필드를 사용하지만 UITextView 에도 같은 개념이 적용됩니다.

  • textField.becomeFirstResponder() 를 사용하여 텍스트 필드에 포커스를두고 키보드를 표시합니다.

  • 일부 범위에서 텍스트를 가져 오는 방법은 이 대답 을 참조하십시오.

관련

깜박이는 캐럿 숨기기

깜박이는 캐럿을 숨기려면 UITextField의 caretRectForPosition을 재정의하고 CGRectZero를 반환해야합니다.

스위프트 2.3 <

public override func caretRectForPosition(position: UITextPosition) -> CGRect {
    return CGRectZero 
}

스위프트 3

override func caretRect(for position: UITextPosition) -> CGRect {
    return CGRect.zero
}

목표 -C

- (CGRect) caretRectForPosition:(UITextPosition*) position{
return CGRectZero;
}

자리 표시 자 색상 및 글꼴 변경

attributedPlaceholder ( NSAttributedString )를 설정하여 자리 표시 자의 스타일을 변경할 수 있습니다.

var placeholderAttributes = [String: AnyObject]()
placeholderAttributes[NSForegroundColorAttributeName] = color
placeholderAttributes[NSFontAttributeName] = font

if let placeholder = textField.placeholder {
    let newAttributedPlaceholder = NSAttributedString(string: placeholder, attributes: placeholderAttributes)
    textField.attributedPlaceholder = newAttributedPlaceholder
}

이 예제에서는 colorfont 만 변경합니다. 밑줄 또는 취소 선 스타일과 같은 다른 속성을 변경할 수 있습니다. 변경할 수있는 속성은 NSAttributedString 을 참조하십시오.

UITextField 만들기

CGRect를 프레임으로 사용하여 UITextField 를 초기화합니다.

빠른

let textfield = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 21))

목표 -C

UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 21)];

Interface Builder에서 UITextField 를 만들 수도 있습니다. 여기에 이미지 설명을 입력하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow