>

사용자 정의 NSButtonCell 를 만들었습니다  버튼 내용 사이의 패딩을 사용자 정의 할 수있는 서브 클래스. 내 구현에서 전체 소스 코드는 GitHub ) titleRect (forBounds :) 버튼 제목을 위치 시키려면 :

var titleSize: NSSize {
    return NSSize(width: ceil(attributedTitle.size().width),
                  height: ceil(attributedTitle.size().height))
}
override func titleRect(forBounds rect: NSRect) -> NSRect {
    return CGRect(x: paddingLeft,
                  y: rect.height / 2 - titleSize.height / 2,
                  width: titleSize.width,
                  height: titleSize.height)
}

결과가 좋지 않습니다 :

원하는 결과를 얻으려면 너비에 추가 패딩을 추가해야합니다.

boundingRect (with : options : context :) 크기를 얻으려면 같은 결과를 얻습니다.

  • 답변 # 1

    나중에 참조하기 위해 : 문제를 알아 냈습니다. attributedTitle 를 사용할 때 버튼의 글꼴을 지정하여 attributedString.size() 를 지정하는 것이 중요합니다.  필요한 너비를 올바르게 계산할 수 있습니다. 기본적으로 계산은 NSButton 의 기본 글꼴을 기반으로한다고 가정했습니다.  그러나 분명히 그것은 틀렸다. 자세한 내용은 커밋을 참조하십시오.

관련 자료

  • 이전 java - 프로그래밍 방식으로 벡터를 사용하여 다각형 그리기
  • 다음 c# - 문자열 오름차순, int 오름차순의 두 가지 기준으로 정렬