사용자가 두드리고있는 버튼을 추적 할 수 있기를 원합니다. 내 앱에있는 모든 버튼 탭을 "캡처"또는 "기록"할 수 있습니까?앱 안에있는 모든 UIButton 탭을 "캡처"하는 방법이 있습니까?
나는 혼란에 빠져있는 방법에 대해 생각하고 있었지만 실제로는 그렇게하지 않았습니다.
사용자가 두드리고있는 버튼을 추적 할 수 있기를 원합니다. 내 앱에있는 모든 버튼 탭을 "캡처"또는 "기록"할 수 있습니까?앱 안에있는 모든 UIButton 탭을 "캡처"하는 방법이 있습니까?
나는 혼란에 빠져있는 방법에 대해 생각하고 있었지만 실제로는 그렇게하지 않았습니다.
버튼에는 여러 동작이 첨부되어있을 수 있습니다. 각 단추에 항상 로깅 동작을 추가 할 수 있습니다. 조치 메소드는 송신자를 수신하므로, 두드린 버튼에 대한 정보를 기록 할 수 있습니다.
Aspect Programming이 도움이 될 수 있습니다.
[UIButton aspect_hookSelector:@selector(whateverSelectorYouWantToHookOn:)
withOptions:AspectPositionAfter
usingBlock:^(id<AspectInfo> aspectInfo) {
NSLog(@"UIButton called");
}
error:NULL];
라는 인스턴스에 대한 자세한 내용은 AspectInfo에 보라 :
https://github.com/steipete/Aspects
은 기본적으로 당신이 그런 짓을 :이 라이브러리에서보세요.
로깅을 추가하려면 UIButton을 하위 클래스로 만들 수 있습니다.
objective C: Buttons created from subclass of UIButton class not working
에 허용 대답이 서브 클래스가 유용 할 수있는 몇 가지 경우 중 하나입니다 이유에 대한 좋은 설명이있다. 관찰하거나의 대상에 액션 메시지의 발송을 수정하려면
:
기본적있는 UIButton 당신은 두 가지 이유 중 하나에 대한 UIControl의 서브 클래스를 확장 할 수 있습니다 UIControl과 UIControl Class Reference 상태
서브 클래스 노트에서 상속 특정 이벤트
사용자 지정 추적 동작을 제공하려면 (예 : 강조 표시 모양을 변경하려면)
나는 뭔가를하고 싶습니다. g "일반"은 내 앱의 모든 버튼에 영향을 미치며 각 버튼에 코드를 추가하지 않아도됩니다. – YogevSitton