2013-10-21 2 views
-2

UITextView의 글꼴을 변경하기위한 UIActionSheet가 있습니다. 내가 가진 문제는 내가 또 다른 UITextView를 추가했고 이제는 열려있는 UITextView에 의존하고 싶어한다는 것입니다. (키보드를 열어 편집하는 것을 의미합니다.) 하나 또는 다른 소스의 유형을 할당합니다. 선택에 따라 하나를 다른 것과 구별하기 위해 UITextView의 올바른 속성입니다.UITextView 용 UIActionSheet

어떤 아이디어가 있습니까?

단일 UITextView의 경우입니다. 나는 당신이 텍스트 뷰를 편집 시작할 때 텍스트 뷰를 사용하여, 실행이 그것을 사용할 수 있습니다, 특히 방법의 번호를 사용할 수있는보고 있어요

- (IBAction) displayFontPicker:(id)sender { 
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select a font" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Helvetica", @"Courier", @"Arial", @"Zapfino", @"Verdana", nil]; 
[actionSheet showFromBarButtonItem:(UIBarButtonItem *)sender animated:YES]; 

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
NSString *selectedButtonTitle = [actionSheet buttonTitleAtIndex:buttonIndex]; 
selectedButtonTitle = [selectedButtonTitle lowercaseString]; 

if ([actionSheet.title isEqualToString:@"Select a font"]) 
switch (buttonIndex){ 

    case 0: 

     [_textView setFont:[UIFont fontWithName:@"Helvetica" size:25]]; 

     break; 
    case 1: 

     [_textView setFont:[UIFont fontWithName:@"Courier" size:25]]; 

     break;   
} 

. 당신의 SetTag 속성을 설정하여 각 UITextView에 대한 태그를 적용 할 수 있습니다 모두 구별 할 수

답변

5

(void)textViewDidBeginEditing:(UITextView *)textView 

하지만 내 코드에서 구현하는 방법을 모른다 .... 텍스트 뷰가 할당 지금 편집 가능한 상태

@property NSInteger editabelTextView; 

의 모든 UITextView 인 확인하고 각 UITextView 태그를 추가하는 속성을 추가 할 수 있습니다.

self.textView1 = [[UITextView alloc] init]; 
self.textView2 = [[UITextView alloc] init]; 
self.textView3 = [[UITextView alloc] init]; 

self.textView1.tag = 1; 
self.textView2.tag = 2; 
self.textView3.tag = 3; 

지금

지금
-(void)textViewDidBeginEditing:(UITextView *)textView 
{ 
    self.editabelTextView=textView.tag; 
} 

추가 특정 텍스트보기

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex (NSInteger)buttonIndex { 
    switch (self.editabelTextView){ 
    case 1: 
     [self.textView1 setFont:[UIFont font...]]; 
     break; 
    case 2: 
     [self.textView2 setFont:[UIFont font...]]; 
     break; 
    case 3: 
     [self.textView3 setFont:[UIFont font...]] 
     break; 
    default: 
     break; 
    } 
} 
+0

공유하시기 바랍니다 코드로 UIActionsheet 대리자를 편집 할 수 있습니다. – Popeye

+0

안녕하세요 @Popeye 의견을 공유하십시오. – nikhilgohil11

0

에 대한 self.editabelTextView 및 accrodingly의 setFont을 확인 self.editabelTextView하는 textView.tag를 할당

@property UITextView *activeTextView; 

지금

-(void)textViewDidBeginEditing:(UITextView *)textView 

{ 
_activeTextView=textView; 
} 

다음 텍스트 뷰 위임에,

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
NSString *selectedButtonTitle = [actionSheet buttonTitleAtIndex:buttonIndex]; 
selectedButtonTitle = [selectedButtonTitle lowercaseString]; 

if ([actionSheet.title isEqualToString:@"Select a font"]) 
switch (buttonIndex){ 

    case 0: 

     [_activeTextView setFont:[UIFont fontWithName:@"Helvetica" size:25]]; 

     break; 
    case 1: 

     [_activeTextView setFont:[UIFont fontWithName:@"Courier" size:25]]; 

     break;   
} 
+0

어떻게이 문제가 해결됩니까? – Popeye

+0

그는 편집을 위해 열렸던 텍스트 필드가 필요합니까? 여기 activeTextfield는 마지막으로 편집 된 textView를 가질 것입니다 ... – Raon

+0

필수는 아니지만 실제로는 짜증나고 저에게는 설명이 포함되지 않은 답변을 수락하지 않습니다. . 나는 당신의 코드가 무엇을하는지 정확히 알고 있지만, 설명이 훌륭하지 않은 사람들은 위대 할 것이므로, 당신이 대답을 편집하지 않기를 바랬다. 그것은 단지 당신의 대답을 향상시킬 수 있습니다. – Popeye