Tag Archives: UITextView

[iPhone] 임의로 키보드 띄우기

보통은 UITextField 혹은 UITextView를 사용함에 있어 사용자가 해당 영역을 클릭하면 키보드가 나오면서 편집모드로 들어가게 됩니다.

하지만 특정 뷰를 띄우면서 바로 특정 필드를 편집하고 싶다면? 키보드를 띄우면 되겠죠?
becomeFirstResponder를 사용하시면 됩니다.

[code]UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0.0f, 20.0f, 320.0f, 200.0f)];
[textView becomeFirstResponder];
[window addSubview:textView];
[textView release];[/code]
사용자 삽입 이미지어플리케이션을 실행하자 마자 키보드가 나오고 커서가 위치하고 있는것을 알 수 있습니다.
1030176275.zip

[iPhone] UITextView에 라운드 테두리 만들기

UITextField에는 RoundedRect라는 둥근 테두리 형태의 스타일을 제공하고 있습니다.

하지만 UITextView에는 아무리 찾아봐도 그런 스타일을 제공하지 않더군요. 하지만 만들어진 앱을 보면 흔하게 볼 수 있습니다.

방법을 찾아보니 저는 단순히 스타일 설정이 있는줄 알았는데 그게 아니라 엄청난 삽질을 통해 완성되는 것이더군요.

[code]- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // UITableView 생성
    CGRect tableViewRect = CGRectMake(10.0f, 30.0f, 300.0f, 170.0f);
    UITableView *tableView = [[UITableView alloc] initWithFrame:tableViewRect style:UITableViewStyleGrouped];
   
    // UITableView 설정
    [tableView setDelegate:self];
    [tableView setDataSource:self];
    [tableView setScrollEnabled:NO];
    [tableView setAutoresizesSubviews:YES];
    [tableView setRowHeight:150.0f];
    [tableView setBackgroundColor:[UIColor whiteColor]];
   
    // 뷰를 붙이기
    [window addSubview:tableView];
    [tableView release];
   
    [window makeKeyAndVisible];
}

#pragma mark – UITableView dataSource Methods
– (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // 테이블의 원소는 UITextView 한개뿐이므로 1을 반환하면 된다.
    return 1;
}

– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // 재활용을 이용한 셀 생성
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@”TABLEVIEW_IDENTIFIER”];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@”TABLEVIEW_IDENTIFIER”] autorelease];
    }
   
    // UITextView 생성
    CGRect textViewRect = CGRectMake(5.0f, 5.0f, 270.0f, 140.0f);
    UITextView *textView = [[UITextView alloc] initWithFrame:textViewRect];
   
    [textView setFont:[UIFont systemFontOfSize:12.0f]];
    [textView setTextColor:[UIColor blackColor]];
    [textView setBackgroundColor:[UIColor whiteColor]];
    [textView setReturnKeyType:UIReturnKeyDefault];
    [textView setKeyboardType:UIKeyboardTypeDefault];
   
    [cell.contentView addSubview:textView];
    [textView release];
   
    return cell;
}[/code]
1개의 셀을 가진 UITableView를 만든 후에 하나의 셀에 UITextView를 만들어 넣습니다.

이때에 중요한점은 UITableView의 스타일이 UITableViewStyleGrouped인 점입니다. 이것으로 다음과 같은 화면을 볼 수 있습니다.
사용자 삽입 이미지원하시는 모습이 되었나요? 키보드화면이 짤렸지만 정상적으로 여러줄의 글을 작성할 수 있습니다.
1134272022.zip