2013-02-02 3 views
0

NSStepper 컨트롤 (많은 경우, 실제로는 ...)을 사용하는 사람은 각각 NSStepper 인스턴스에서 증분을 0.1 또는 기타 정수 값 이외의 다른 값으로 setIncrement:을 호출하여 사용할 수 있습니까?10 진수 값이있는 NSStepper

steppers가 첨부 파일의 값을 조금씩 변경해야하는 편집기와 같은 UI가 있습니다. NSTextField.

인터페이스 작성기 (IB)에서 십진수 값으로 증가 값을 설정하면 API가 정수로 반올림됩니다. API에서 이중 값을 허용하더라도.

증분 필드에 아무 것도 입력하지 않고 모든 인스턴스에 대해 setIncrement:을 호출하는 NSStepper 하위 클래스를 사용하는 경우에도. IB는 분명히 여전히 0 또는 init가 호출 된 후 뭔가 증가를 설정으로 init에 0.1 .. 실패

확실하지는하지만 것을 어떻게하는지 서브 클래스에서 setIncrement: 오버라이드 ...

호출되지 않습니다으로
+0

NSStepper 인스턴스는 어떻게 생성됩니까? 인터페이스 빌더 또는 코드? – Monolo

+0

코드로 만들면 문제가 없습니다. 맞습니까? 바로 거기에 증가분을 설정했습니다. 게시물에서 언급했듯이 값은 IB에 설정되어 있습니다. 즉, NSStepper는 IB (Interface Builder) – Jay

+0

에 생성됩니다. 아니요, 문제가되지는 않지만 UI에 추가해야합니다. 프로그래밍 방식으로 코드에서 UI를 통해 작업해야합니다. – Monolo

답변

1

NSStepper이 표준 증가량과 다른 점이 있다면 NSStepper의 서브 클래스를 시도하고 initWithCoder:을 오버라이드 할 수 있습니다. 이는 객체가 nib 파일에서 다시 생성 될 때 호출되는 초기화 프로그램입니다.

내가 과 함께 지정된 이니셜 라이저를 initWithFrame:과 함께 사용하는 경향이 있지만 그 문서에서는 문서가 약간 애매합니다. 어쨌든 자신의 속성을 설정하기 전에 super으로 전화를 걸면 제대로 작동하고 견고해야합니다. 이러한 종류의 트릭을 수행하는 경우 initWithFrame:을 재정의하여 동일한 초기화를 수행 할 수도 있으므로 하위 클래스를 인스턴스화하는 여러 가지 방법에 걸쳐 일관된 동작을 얻을 수 있습니다.

이 접근법의 단점은 사용자 정의 하위 클래스에 대해 Interface Builder에서 increment을 설정할 수 없으므로 사후 적합성을 위해 문서화하는 것이 좋습니다.