0Pricing
Objective-C iOS Development for Legacy & Enterprise Apps · 강의

일반적인 UI 컨트롤과 이벤트

버튼, 레이블, 텍스트 필드와 같은 표준 UIKit 컨트롤을 사용하고 사용자 상호작용과 이벤트를 처리하는 방법을 배웁니다.

일반적인 UI 컨트롤과 이벤트은(는) CoddyKit의 무료 Objective-C iOS Development for Legacy & Enterprise Apps 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Objective-C iOS Development for Legacy & Enterprise Apps 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Objective-C iOS Development for Legacy & Enterprise Apps 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

UI Controls: Your App's Face

User Interface (UI) controls are the interactive elements users see and touch in an app. They are the building blocks of any iOS application's visual experience.

  • Buttons: Tap to perform actions.
  • Labels: Display static text.
  • Text Fields: Input text from the user.

Mastering these controls is crucial for creating intuitive and functional apps, especially when maintaining legacy Objective-C codebases.

Displaying Text with UILabel

A UILabel is used to display static, read-only text in your app. Think of it as a sign or a description.

  • Set its text property to display content.
  • Customize its appearance with properties like textColor, font, and textAlignment.
  • Labels can be single or multi-line.

It's one of the most fundamental UI elements you'll encounter.

UILabel in Action

Let's create a UILabel programmatically and inspect its properties. Remember, in a real app, you'd add this to a view to see it visually!

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // Create a label with a frame (position and size)
        UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 50, 280, 40)];
        myLabel.text = @"Hello CoddyKit!";
        myLabel.textColor = [UIColor darkTextColor];
        myLabel.font = [UIFont boldSystemFontOfSize:20.0];
        myLabel.textAlignment = NSTextAlignmentCenter;

        NSLog(@"Created UILabel:");
        NSLog(@"  Text: %@", myLabel.text);
        NSLog(@"  Font Size: %.1f", myLabel.font.pointSize);
        NSLog(@"  Alignment: %ld", (long)myLabel.textAlignment);
    }
    return 0;
}

Making Apps Interactive with UIButton

The UIButton is arguably the most common interactive control. Users tap buttons to trigger actions.

  • Buttons can display text, an image, or both.
  • They have different states (Normal, Highlighted, Disabled, Selected).
  • You attach actions to buttons to define what happens when they're tapped.

Buttons are key for user interaction in any iOS application.

Responding to Button Presses

To make a UIButton do something, you use the Target-Action pattern. This connects a specific event (like a tap) to a method in an object (the target).

  • addTarget:action:forControlEvents: is the method you call.
  • The target is typically your UIViewController or another handler object.
  • The action is a method selector (e.g., @selector(buttonTapped:)).
  • UIControlEventTouchUpInside is the common event for a tap inside the button's bounds.

Implementing a Tap Action

Here's how you'd set up a button and its action. When you "run" this, imagine the button being tapped and the message appearing in the console!

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface ButtonHandler : NSObject
- (void)buttonTapped:(UIButton *)sender;
@end

@implementation ButtonHandler
- (void)buttonTapped:(UIButton *)sender {
    NSLog(@"Button '%@' was tapped!", [sender titleForState:UIControlStateNormal]);
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        ButtonHandler *handler = [[ButtonHandler alloc] init];

        UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem];
        myButton.frame = CGRectMake(10, 100, 200, 50);
        [myButton setTitle:@"Press Me!" forState:UIControlStateNormal];
        
        // Set up the target-action. The handler object will receive the message.
        [myButton addTarget:handler 
                     action:@selector(buttonTapped:)
           forControlEvents:UIControlEventTouchUpInside];

        NSLog(@"Button created. If tapped, console would show action.");
        // In a real app, you'd add myButton to a view hierarchy.
        // For this console example, we simulate the action call.
        // [handler buttonTapped:myButton]; // Uncomment to simulate a tap immediately
    }
    return 0;
}

Accepting Text with UITextField

A UITextField allows users to enter single lines of text. It's perfect for names, passwords, or short messages.

  • It automatically brings up the keyboard when tapped.
  • You can configure its placeholder text, keyboard type (numeric, email, etc.), and security options (for passwords).
  • Use its text property to get the current input.

Handling UITextField Events

UITextField also uses the Target-Action pattern for various events. Common events include:

  • UIControlEventEditingChanged: The text content has changed.
  • UIControlEventEditingDidEndOnExit: The user pressed the "Return" key.
  • UIControlEventEditingDidBegin: The user started editing the text field.

You can also assign a delegate to a text field for more advanced control, like validating input or custom keyboard behavior.

Observing Text Input

This example shows how to set up a text field and react when its content changes. The console will log the text as it's "typed".

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface TextFieldHandler : NSObject
- (void)textFieldDidChange:(UITextField *)sender;
@end

@implementation TextFieldHandler
- (void)textFieldDidChange:(UITextField *)sender {
    NSLog(@"Text field content changed: %@", sender.text);
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        TextFieldHandler *handler = [[TextFieldHandler alloc] init];

        UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(10, 160, 280, 40)];
        myTextField.placeholder = @"Type here...";
        myTextField.borderStyle = UITextBorderStyleRoundedRect;
        
        // Attach an action for when the text changes
        [myTextField addTarget:handler
                        action:@selector(textFieldDidChange:)
              forControlEvents:UIControlEventEditingChanged];

        NSLog(@"Text field created. Simulating input...");
        // Simulate some input changes
        myTextField.text = @"H";
        [handler textFieldDidChange:myTextField];
        myTextField.text = @"He";
        [handler textFieldDidChange:myTextField];
        myTextField.text = @"Hello";
        [handler textFieldDidChange:myTextField];
    }
    return 0;
}

Identify the UI Control

Which UIKit control is primarily used for displaying static, non-editable text, such as a title or a descriptive message?

Recap: Common Controls & Events

In this lesson, we explored fundamental UIKit controls and how to make them interactive:

  • UILabel: Displays static, read-only text.
  • UIButton: Triggers actions via taps, using the Target-Action pattern.
  • UITextField: Accepts single-line text input, also using Target-Action for changes.

These controls are the foundation for building user interfaces in Objective-C iOS apps. Understanding their properties and event handling is crucial for both new development and maintaining legacy code.

자주 묻는 질문

“일반적인 UI 컨트롤과 이벤트” 강의는 무료인가요?

네 — “일반적인 UI 컨트롤과 이벤트” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Objective-C iOS Development for Legacy & Enterprise Apps 강의 전체를 잠금 해제할 수 있습니다. Objective-C iOS Development for Legacy & Enterprise Apps 강의에는 총 4개의 강의가 포함되어 있습니다.

“일반적인 UI 컨트롤과 이벤트”에서 뭘 배우나요?

버튼, 레이블, 텍스트 필드와 같은 표준 UIKit 컨트롤을 사용하고 사용자 상호작용과 이벤트를 처리하는 방법을 배웁니다. 브라우저에서 직접 실행하는 실습 코드로 Objective-C iOS Development for Legacy & Enterprise Apps을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Objective-C iOS Development for Legacy & Enterprise Apps을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Objective-C iOS Development for Legacy & Enterprise Apps은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“일반적인 UI 컨트롤과 이벤트” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Objective-C iOS Development for Legacy & Enterprise Apps 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Objective-C iOS Development for Legacy & Enterprise Apps 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. UIView와 UIViewController
  2. 일반적인 UI 컨트롤과 이벤트
  3. 테이블 뷰와 컬렉션 뷰
  4. NSLayoutConstraint를 사용한 자동 레이아웃
← Objective-C iOS Development for Legacy & Enterprise Apps(으)로 돌아가기