NSControl의 속성을 변경하고 작업을 수행하는 방법은 무엇입니까?
2656 단어 코코아
구조는 매우 간단합니다.
* NSSlider의 값은 AppDelegate의 sliderValue 속성을 바인딩합니다.
* slider의 조작은 AppDelegate의 sliderAction에서 받는다
그림으로 보자.
구현도 간단하게.
setSliderValue
-(void)setSliderValue:(NSInteger)v
{
NSLog(@"setSliderValue");
if (_sliderValue == v)
return;
_sliderValue = v;
}
sliderAction
-(IBAction)sliderAction:(id)sender
{
NSLog(@"sliderAction");
}
그래서 실행해 보았습니다.
2014-05-17 09:59:49.638 SliderActionAndBind[1832:303] setSliderValue
2014-05-17 09:59:49.639 SliderActionAndBind[1832:303] sliderAction
2014-05-17 09:59:52.174 SliderActionAndBind[1832:303] setSliderValue
2014-05-17 09:59:52.175 SliderActionAndBind[1832:303] sliderAction
2014-05-17 09:59:52.960 SliderActionAndBind[1832:303] setSliderValue
2014-05-17 09:59:52.960 SliderActionAndBind[1832:303] sliderAction
...
아무래도 프로퍼티의 변경→액션의 실행의 순서로 행해지는 것 같다. 다른 컨트롤은 시도하지 않고 실행할 때마다 바뀔 수 있습니다. 이 근처 Apple의 공식 문서의 어디에 쓰여져 있는 것일까・・・
원래 속성의 setter만으로 좋지 않아
액션과 프로퍼티를 따로 쓸 필요가 있는데, setter 안에 action의 처리 써도 같은 것은 아니다, 라고 하는 이야기도 있는데, 그렇다고도 말할 수 없는 문제가 일어난 것이 이번 의문의 발단.
이 근처에 대해서도 좀 쓰려고 생각했지만 조금 생각을 정리하고 나서 다른 기사에.
Reference
이 문제에 관하여(NSControl의 속성을 변경하고 작업을 수행하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Nunocky/items/af2bed626d4bfc7c8aa5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)