문제

내가 사용하는 데 사용되는 엑스 코드 개발 및 사용하는;게 확인할 수 있게 되었습니다.링크에 IB/보는 합성에 이 방법:

- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents

한 경우

그러나,아니 나는 그것을 하고 있는 모든 프로그래밍 방식으로(에 rubymotion 하지 않지만,반드시 관련)및으로 보고서에 대한 UITextField 찾았는데,대리인 방법을 구현했는 다음과 같다:

def textFieldShouldReturn(text_field)
  text_field.resignFirstResponder
end

def textFieldShouldEndEditing(text_field)
  # this is for validations; don't set a first responder here
  true
end

def textFieldDidEndEditing(text_field)
  text_field == @email_field ? @password_field.becomeFirstResponder : delegate.validate_login_info
end

하지만 이를 사용하여 내가 발견 할 수 없었던 탭을 통해 입력 필드(는 내가 두;이메일 주소와 비밀번호가 아님)나가기 전에 수와 addTarget 접근 방식이다.

의 차이점은 무엇입한 이러한 두 가지 방법?는 전 구현하는 후자의 뒤?내가 이해하지 않는 이유 중 하나는 것이 허용하는 탭을 통해 다른지 않습니다.나는 그냥 대리자를 구현 방법은 다르게 보다는 대상/작업 방식은 뒤?

피드백 감사 pachun

도움이 되었습니까?

해결책

이는 아무것도 할 대상/작업입니다.나는 당신 뜻에는 인터페이스 빌더 당신은에서 드래그 UITextFieldFile's Owner 선택합 대리인에서 HUD.

을 위 효과가 있다고 할당하는 textField 의 위임하는 것이 당신이 해야 할 코드에서 같은이

@email_field.delegate    = self
@password_field.delegate = self

위의 가정을 만드는 클래스 UITextField's 로 행동할 것이 그들의 대리자입니다.

다른 팁

이 경우 위임자와 대상 / 행동 사이에 차이가 있는지 모르지만이 방법 으로이 방법은 다음과 같습니다.

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if (textField == self.firstTextField)
    {
        [self.secondTextField becomeFirstResponder];
    }
    else if (textField == self.secondTextField)
    {
        [textField resignFirstResponder];
        // proceed with login
    }
    return YES;
}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    // Validation
    return YES;
}
.

에 관해서는

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top