sourcecode

xcode에서 프로그래밍 방식으로 단추에 작업을 추가하는 방법

copyscript 2023. 6. 3. 08:38
반응형

xcode에서 프로그래밍 방식으로 단추에 작업을 추가하는 방법

인터페이스 작성기에서 끌어 버튼에 IBAaction을 추가하는 방법을 알고 있지만 시간을 절약하고 계속해서 왔다 갔다 하는 것을 방지하기 위해 작업을 프로그래밍 방식으로 추가하고 싶습니다.해결책은 정말 간단할 수도 있지만, 검색해보니 답을 찾을 수가 없는 것 같습니다.감사해요!

사용해 보십시오.

스위프트 4

myButton.addTarget(self,
                   action: #selector(myAction),
                   for: .touchUpInside)

목표-C

[myButton addTarget:self 
             action:@selector(myAction) 
   forControlEvents:UIControlEventTouchUpInside];

Apple 설명서에서 풍부한 정보를 찾을 수 있습니다.UIButton의 문서를 보면 UIButton이 대상을 추가하는 방법을 구현하는 UIControl의 하위 제품임을 알 수 있습니다.

--

다음에 대장을 추가할지 여부에 주의를 기울여야 합니다.myActionaction:@selector(myAction)

여기 참고 자료가 있습니다.

신속한 답변:

myButton.addTarget(self, action: "click:", for: .touchUpInside)

func click(sender: UIButton) {
    print("click")
}

설명서: https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget

CGRect buttonFrame = CGRectMake( 10, 80, 100, 30 );
        UIButton *button = [[UIButton alloc] initWithFrame: buttonFrame];
        [button setTitle: @"My Button" forState: UIControlStateNormal];
        [button addTarget:self action:@selector(btnSelected:) forControlEvents:UIControlEventTouchUpInside];
        [button setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
[view addSubview:button];

사용해 보십시오.

먼저 뷰 컨트롤러의 .h 파일에 기록합니다.

UIButton *btn;

이제 이것을 뷰 컨트롤러 뷰 DidLoad의 .m 파일에 기록합니다.

btn=[[UIButton alloc]initWithFrame:CGRectMake(50, 20, 30, 30)];
[btn setBackgroundColor:[UIColor orangeColor]];
//adding action programatically
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];

이 외부 뷰 작성 뷰 컨트롤러의 .m 파일에 DidLoad 메서드를 작성합니다.

- (IBAction)btnClicked:(id)sender
{
   //Write a code you want to execute on buttons click event
}
 CGRect buttonFrame = CGRectMake( x-pos, y-pos, width, height );   //
 CGRectMake(10,5,10,10) 

 UIButton *button = [[UIButton alloc] initWithFrame: buttonFrame];

 button setTitle: @"My Button" forState: UIControlStateNormal];

 [button addTarget:self action:@selector(btnClicked:) 
 forControlEvents:UIControlEventTouchUpInside];

 [button setTitleColor: [UIColor BlueVolor] forState:
 UIControlStateNormal];

 [view addSubview:button];




 -(void)btnClicked {
    // your code }

스위프트 3용

단추 작업에 대한 기능을 먼저 만든 다음 단추 대상에 해당 기능을 추가합니다.

func buttonAction(sender: UIButton!) {
    print("Button tapped")
}

button.addTarget(self, action: #selector(buttonAction),for: .touchUpInside)
UIButton *btnNotification=[UIButton buttonWithType:UIButtonTypeCustom];
btnNotification.frame=CGRectMake(130,80,120,40);
btnNotification.backgroundColor=[UIColor greenColor];
[btnNotification setTitle:@"create Notification" forState:UIControlStateNormal];
[btnNotification addTarget:self action:@selector(btnClicked) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnNotification];


}

-(void)btnClicked
{
    // Here You can write functionality 

}

UIButton에서 상속됨.UIControl여기에는 작업을 추가/제거하는 모든 방법인 UIControl Class Reference가 있습니다.다음을 포함하는 "수행 메시지 준비 및 보내기" 섹션을 확인하십시오.– sendAction:to:forEvent:그리고.– addTarget:action:forControlEvents:.

 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
       action:@selector(aMethod1:)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];   

IOS 14 SDK: 종료 콜백으로 작업을 추가할 수 있습니다.

let button = UIButton(type: .system, primaryAction: UIAction(title: "Button Title", handler: { _ in
            print("Button tapped!")
        }))

제어 송신기에 대한 참조 가져오기

let textField = UITextField()
textField.addAction(UIAction(title: "", handler: { action in
    let textField = action.sender as! UITextField
    print("Text is \(textField.text)")
}), for: .editingChanged)

원천

언급URL : https://stackoverflow.com/questions/5843427/how-do-you-add-an-action-to-a-button-programmatically-in-xcode

반응형