xcode에서 프로그래밍 방식으로 단추에 작업을 추가하는 방법
인터페이스 작성기에서 끌어 버튼에 IBAaction을 추가하는 방법을 알고 있지만 시간을 절약하고 계속해서 왔다 갔다 하는 것을 방지하기 위해 작업을 프로그래밍 방식으로 추가하고 싶습니다.해결책은 정말 간단할 수도 있지만, 검색해보니 답을 찾을 수가 없는 것 같습니다.감사해요!
사용해 보십시오.
스위프트 4
myButton.addTarget(self,
action: #selector(myAction),
for: .touchUpInside)
목표-C
[myButton addTarget:self
action:@selector(myAction)
forControlEvents:UIControlEventTouchUpInside];
Apple 설명서에서 풍부한 정보를 찾을 수 있습니다.UIButton의 문서를 보면 UIButton이 대상을 추가하는 방법을 구현하는 UIControl의 하위 제품임을 알 수 있습니다.
--
다음에 대장을 추가할지 여부에 주의를 기울여야 합니다.myAction
에action:@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
'sourcecode' 카테고리의 다른 글
CodeDom 공급자 유형 "Microsoft.코드 돔.공급자.DotNetCompilerPlatform.CSSharpCodeProvider"를 찾을 수 없습니다. (0) | 2023.06.03 |
---|---|
Android에서 경고 대화 상자를 표시하려면 어떻게 해야 합니까? (0) | 2023.06.03 |
RMagick 설치:Magick Wand를 찾을 수 없습니다. (0) | 2023.06.03 |
MongoDB에 대한 IDE를 쿼리하시겠습니까? (0) | 2023.06.03 |
Mongoose 유효성 검사 오류 처리 - 어디서 어떻게 처리합니까? (0) | 2023.06.03 |