ButtonStyle에서 Button.disabled 상태에 접근하는 방법

치킨치·2025년 1월 7일
0
@State var buttonDisabled = false

Button("titleKey") {
}
.disabled(buttonDisabled)

ButtonStyle을 커스텀할 때 disabled 정보를 생성자에서 Binding로 넘어주는 방법이 유일한지 알았다.
아무리 생각해도 이상해서 검색으로 하루를 보낸적도 있었다.
오늘 이런 지런 시도중에 정식 방법이 있다는 걸 알게 됐는데, 그건 바로 Environment를 이용해 정보에 접근하는 방법이다:

struct CustomButtonStyle: ButtonStyle {
	@Environment(\.isEnabled) private var isEnabled
    ...
    func makeBody(configuration: Configuration) -> some View {
  		// 이제 isEnabled로 접근 가능!
  		...
    }
}

시간을 때려박으면서 공부하면 항상 새로운 게 나오는 SwiftUI..
언제쯤 눈감고 코딩할 수 있을 정도가 될까.

profile
풀스텍이었던 iOS개발자

0개의 댓글