两个UITextView的UIActionSheet

use*_*661 -2 uitextview uiactionsheet ios

我有一个UIActionSheet来更改UITextView的字体.我的问题是我已经添加了另一个UITextView,现在想要它取决于打开的UITextView,(我的意思是打开编辑,显示键盘)给我一个源的类型在一个或另一个...不是哪个是UITextView的正确属性,以便根据选择区分彼此.

任何的想法?

这是单个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;        
}
Run Code Online (Sandbox Code Playgroud)

我看到使用textview,可以使用多种方法,特别是这可以使用它,将在你开始编辑textview时运行.

(void)textViewDidBeginEditing:(UITextView *)textView
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在我的代码中实现它...

nik*_*l11 5

您可以通过设置setTag属性为每个UITextView应用标记,并可以区分它们.添加属性以检查哪个textView处于可编辑状态

@property NSInteger editabelTextView;
Run Code Online (Sandbox Code Playgroud)

现在为每个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;
Run Code Online (Sandbox Code Playgroud)

现在将textView.tag分配给self.editabelTextView

-(void)textViewDidBeginEditing:(UITextView *)textView
{
  self.editabelTextView=textView.tag;
}
Run Code Online (Sandbox Code Playgroud)

现在检查self.editabelTextView并为特定的文本视图记录setFont

- (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;
  }
}
Run Code Online (Sandbox Code Playgroud)