2009-10-19 1 views
2

내 작은 코코아 응용 프로그램에서 NSObjectController의 도움으로 일부 텍스트 필드에 클래스 속성을 바인딩했습니다. 지금까지 가지고있는 유일한 문제는 NSObjectController가 현재 입력으로 클래스를 업데이트하기 전에 항상 텍스트 필드를 떠나야한다는 것입니다.Cocoa-Bindings : NSObjectController를 수동으로 업데이트 하시겠습니까?

사용자가 texfield를 떠나지 않고 바로 저장/전송 버튼을 클릭하면 문제가됩니다. 클래스에 현재 입력이 없습니다. 항상 나쁜 것.

저는 이것을 피할 방법을 찾고 있습니다. 사용자가 필드를 빠져 나가더라도 현재 입력을 얻기 위해 NSObjectController에 알려주는 것과 같습니다. 이것이 가능한 경우 저장하기 전에 save-Method에이 명령을 넣을 수 있으며 모든 것이 좋을 것입니다.

답변

1

commitEditing 메시지를 확인 단추의 처리기에서 컨트롤러로 보냅니다. 이것은 당신이 요구하는 것을 할 것입니다. 그것은 간단합니다 같은 :

- (void)save:sender { 
    if (![self.myObjectController commitEditing]) { 
     // Handle error when object controller can't commit editing 
    } 

    // Other stuff 
} 
0

당신이 이동하면 텍스트 필드의 value 바인딩과 모델 객체에 사용자가 변경 때마다 설정되는 새로운 값을 일으킬 것 "지속적인 업데이트 값"옵션을 확인 , 즉 각 키 입력에 대해 한 번. 그러면 모델을 설정하기 전에 모델에 올바른 값이 있는지 확인할 수 있습니다. 데이터 모델에 설정된 값의 효과에 따라 약간 과장 될 수 있습니다.