2015-01-14 3 views
1

roboVM 프로젝트에서 관찰자를 정의하고 싶습니다. 이렇게하려면 키 값 옵저버 기능을 사용합니다. 여기 내 코드입니다 :키 - 값 관측 및 RoboVM

button.setTitle("Click me!", UIControlState.Normal); 

    button.addOnTouchUpInsideListener(new UIControl.OnTouchUpInsideListener() { 
     @Override 
     public void onTouchUpInside(UIControl control, UIEvent event) { 
      button.setTitle("Click #" + (++clickCount), UIControlState.Normal); 
     } 
    }); 

    Foundation.log("title: " + button.getKeyValueCoder().getValue("title")); 

    button.addKeyValueObserver("title", new NSKeyValueObserver() { 
     @Override 
     public void observeValue(String keyPath, NSObject object, NSKeyValueChangeInfo change) { 
      Foundation.log("2"); 
     } 
    }); 

이 다음 줄을 기록합니다 제목 :

제목이 화면에 변경됩니다하지만 관찰자가 호출되지 않습니다 버튼을 클릭

널 (null)입니다. 코드에서 무엇이 잘못 되었습니까?

답변

2

관찰 할 수없는 것을 관찰하려고합니다. UIButton에는 title 속성이 없습니다.

Foundation.log("titleLabel.text: " + button.getKeyValueCoder().getValue("titleLabel.text")); 

button.addKeyValueObserver("titleLabel.text", new NSKeyValueObserver() { 
    @Override 
    public void observeValue(String keyPath, NSObject object, NSKeyValueChangeInfo change) { 
     Foundation.log(keyPath + " " + object + " " + change); 
    } 
}); 
: 당신이 관찰 할 수있는 text 속성을 가진 UILabeltitleLabel 속성은 그러나이있다