UITextField+MaxLength
같은 UITextField
swimszled, 나는 예를 들어 +load
메서드를 구현하는 메서드를 구현하지만 접두사 헤더 또는 다른 파일에서 가져 오지 않았다, SomeViewController
로 가져 오기만하면됩니다.대칭 -c에서 메서드 swizzled 효과적인 곳곳에
swizzled는 SomeViewController
에서만 작동해야한다고 생각하지만, 왜 모든 방법을 사용합니까? UITextField
도 UISearchBar
입니다. 및 응용 프로그램을 실행할 때 +load
메서드를 호출 할 수 있습니까?
편집 내가 텍스트가 변경 관찰 KVO를 사용하려는의 때문에, 나는 스위 즐링 사용하는 이유를 지적해야 할, 그래서 만약 내가는 setText
를 스위 즐링 및 displayLength
라는 이름의 속성 NSNumber
를 연결, 그렇게 생각
KVO를 사용하지 마라.이 카테고리의 가장 큰 부분을 제거 할 수 있으며 특정 최대 길이까지 부분 문자열을 잘라낼 수있다.
그게 바로 swizzling의 작동 방식입니다. 특정 필드의 길이를 제한하려면 텍스트 필드 대리자 메서드를 사용하십시오. – dan
당신을 이해하는 것이 정말 어렵습니다. 그러나 KVO를 사용하고 싶다면 바로 진행하십시오. 당신은 방법 swizzling 그것을 할 필요가 없습니다. KVO는 문제를 해결하고 인스턴스 기반별로 작업합니다. 이것은 isa swizzling을 사용하고 메서드를 swizzling하는 대신 메서드를 재정의하기 때문에 발생합니다. –