2015-08-17 29 views
5

Iphone 6 ve 6Plus için özel klavye üzerinde çalışıyorum. Vardiya anahtarı aktif - aktif değil veya 123 ve abc tuşu için mantık geliştirdim. ama gösterilen elma klavyesi gibi özel sembolü de göstermek istiyorum. Lütfen resimde kontrol edin. IOS Özel Anahtar Kartı. Özel klavyede özel karakter nasıl ayarlanır

enter image description here

şu anda ben küçük harfe büyük harf ve 123 abc değiştirmek mümkün ama nasıl ben bu özel karakter set can. NOT: - Github üzerinde çok fazla demo aradım ancak özel klavye ile özel karakter göremiyorum.

İşte büyük harf ve ABC-123 Düğme benim mantıktır.

-(void)UpparCase:(UIButton*)sender // To make caps or small letter 
{ 

sender.selected=!sender.selected; 
if(sender.selected) 
{ 
    if(isPortrait) 
    { 

    [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"upparActive.png"] forState:UIControlStateNormal]; 
    } 
    else 
    { 
     [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Uppar_selctd_land.png"] forState:UIControlStateNormal]; 

    } 

    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 


     NSString *uppercaseString = [[key currentTitle] uppercaseString]; 

     [key setTitle:uppercaseString forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 

    } 
    } 
    else 
    { 

    if(isPortrait) 
    { 

    [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"UpperCase.png"] forState:UIControlStateNormal]; 
    } 
    else 
    { 
     [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Uppar_land.png"] forState:UIControlStateNormal]; 

    } 
    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 


     NSString *uppercaseString = [[key currentTitle] lowercaseString]; 

     [key setTitle:uppercaseString forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 

     } 

    } 
} 

- (IBAction)action123:(UIButton*)sender // To set 123 and ABC 
{ 


sender.selected=!sender.selected; 

if(sender.selected) 
{ 

    [self.ObjKeyLayout.btn123Key setTitle:@"ABC" forState:UIControlStateNormal]; 
      int i=0; 

    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 

     [key setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; 
     NSLog(@"\n\n123isSelected\nI-%i\tArrayCharKey.Count:-%i",i,(int)self.ObjKeyLayout.ArryCharKey.count); 
     if(isPortrait) 
     { 
      NSLog(@"\n\n123isSelected\nI-%i\tArrayCharKey.Count:-%i\nArraySpecialImageKey.Count-%i\n",i,(int)self.ObjKeyLayout.ArryCharKey.count,(int)arrspecialImageKey.count); 
      [key setBackgroundImage:[UIImage imageNamed:[arrspecialImageKey objectAtIndex:i]] forState:UIControlStateNormal]; 




     } 
     else{ 

      [key setBackgroundImage:[UIImage imageNamed:[arrSpecialIpad objectAtIndex:i]] forState:UIControlStateNormal]; 

     } 

     [key setTitle:[NumKey objectAtIndex:i] forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
     i++; 
    } 
    } 
    else 
    { 
    [self.ObjKeyLayout.btn123Key setTitle:@"123" forState:UIControlStateNormal]; 
    int i=0; 
    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 


     [key setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; 


     if(isPortrait) 
     { 
      [key setBackgroundImage:[UIImage imageNamed:[arrKeyImages objectAtIndex:i]] forState:UIControlStateNormal]; 
     } 
     else 
     { 


      [key setBackgroundImage:[UIImage imageNamed:[keyIpad objectAtIndex:i]] forState:UIControlStateNormal]; 
     } 
     ; 

     NSString *uppercaseString = [arrAlphabet objectAtIndex:i]; 

     [key setTitle:uppercaseString forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
     i++; 
     // is123selected=NO; 
     } 
    } 

} 

cevap

1

. Tekrarladığınız için teşekkürler, ancak zaten ayarladım.

@interface KeyboardViewController() 
{ 
    BOOL ABCselect; 
BOOL select123; 
BOOL keypng; 
BOOL checkactiveshift; 
} 

    -(void)UpparCase:(UIButton*)sender 
{ 

if (ABCselect==YES) { 
    if (isPortrait) { 


        [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"key.png"] forState:UIControlStateNormal]; 
        [self.ObjKeyLayout.btnCapKey setTitle:@"" forState:UIControlStateNormal]; 
       } 
       else 
       { 
        [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"special_land_key.png"] forState:UIControlStateNormal]; 
        [self.ObjKeyLayout.btnCapKey setTitle:@"" forState:UIControlStateNormal]; 
       } 
    int i=0; 
    // int j=0; 

    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 

     [key setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; 
     NSLog(@"\n\n123isSelected\nI-%i\tArrayCharKey.Count:-%i",i,(int)self.ObjKeyLayout.ArryCharKey.count); 
     if(isPortrait) 
     { 
      NSLog(@"\n\n123isSelected\nI-%i\tArrayCharKey.Count:-%i\nArraySpecialImageKey.Count-%i\n",i,(int)self.ObjKeyLayout.ArryCharKey.count,(int)arrspecialImageKey.count); 
      [key setBackgroundImage:[UIImage imageNamed:[arrspecialImageKey objectAtIndex:i]] forState:UIControlStateNormal]; 

      } 
     else{ 

      [key setBackgroundImage:[UIImage imageNamed:[arrSpecialIpad objectAtIndex:i]] forState:UIControlStateNormal]; 

     } 

     [key setTitle:[NumKey objectAtIndex:i] forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
     i++; 
     } 

    //select123=NO; 
    keypng=YES; 
    ABCselect=NO; 
    } 

    else if (select123==YES) 
    { 

    if(isPortrait) 
    { 

     [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Caps.png"] forState:UIControlStateNormal]; 
     [self.ObjKeyLayout.btnCapKey setTitle:@"" forState:UIControlStateNormal]; 

    } 
    else 
    { 
     [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Uppar_land.png"] forState:UIControlStateNormal]; 
     [self.ObjKeyLayout.btnCapKey setTitle:@"" forState:UIControlStateNormal]; 


    } 
    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 


     NSString *uppercaseString = [[key currentTitle] lowercaseString]; 

     [key setTitle:uppercaseString forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 

    } 
    select123=NO; 
    keypng=NO; 
    checkactiveshift=YES; 

} 
else if (keypng==YES) 
{ 
    [self.ObjKeyLayout.btnCapKey setTitle:@"123" forState:UIControlStateNormal]; 
      //[self.ObjKeyLayout.btnCapKey setTitle:@"" forState:UIControlStateNormal]; 
      [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"123.png"] forState:UIControlStateNormal]; 

    [self.ObjKeyLayout.btn123Key setTitle:@"ABC" forState:UIControlStateNormal]; 


      int i=0; 
      for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
      { 
       [key setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; 


       if(isPortrait) 
       { 
        [key setBackgroundImage:[UIImage imageNamed:[specialkey2 objectAtIndex:i]] forState:UIControlStateNormal]; 
       } 
       else 
       { 


        [key setBackgroundImage:[UIImage imageNamed:[specialkey2Ipad objectAtIndex:i]] forState:UIControlStateNormal]; 
       } 
       ; 
       [key setTitle:[spec2title objectAtIndex:i] forState:UIControlStateNormal]; 

       [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
       i++; 
       // [self action123:(UIButton*)sender]; 
       // [self addGesturToKeyBoard]; 

       //isshiftselected=NO; 
       keypng=NO; 
       ABCselect=YES; 
       // [self action123:(UIButton*)sender]; 
      } 
    } 


    else if(!self.ObjKeyLayout.btnCapKey.isSelected){ 


    sender.selected=!sender.selected; 
    if(sender.selected) 
    { 
     shiftactive=YES; 

     if(isPortrait) 
     { 

      [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"upparActive.png"] forState:UIControlStateNormal]; 
     } 
     else 
     { 
      [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Uppar_selctd_land.png"] forState:UIControlStateNormal]; 

     } 

     for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
     { 


      NSString *uppercaseString = [[key currentTitle] uppercaseString]; 

      [key setTitle:uppercaseString forState:UIControlStateNormal]; 

      [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 


     } 
      // [sender1 setSelected: NO]; 
      // shift=YES; 
     [sender setSelected: YES]; 
    } 

     else 
     { 

     if(isPortrait) 
     { 

      [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Caps.png"] forState:UIControlStateNormal]; 
     } 
     else 
     { 
      [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Uppar_land.png"] forState:UIControlStateNormal]; 

     } 
     for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
     { 


      NSString *uppercaseString = [[key currentTitle] lowercaseString]; 

      [key setTitle:uppercaseString forState:UIControlStateNormal]; 

      [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 

     } 
      // [sender1 setSelected: YES]; 

    } 

    } 
    else if (self.ObjKeyLayout.btnCapKey.isSelected) 
    { 
    if(isPortrait) 
    { 

     [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Caps.png"] forState:UIControlStateNormal]; 
    } 
    else 
    { 
     [self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"Uppar_land.png"] forState:UIControlStateNormal]; 

    } 
    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 


     NSString *uppercaseString = [[key currentTitle] lowercaseString]; 

     [key setTitle:uppercaseString forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 

     } 
     // [sender1 setSelected: YES]; 
     self.ObjKeyLayout.btnCapKey.selected = !self.ObjKeyLayout.btnCapKey.isSelected; 


     } 
    } 

    - (IBAction)action123:(UIButton*)sender 
    { 


    // dummy=YES; 
    sender.selected=!sender.selected; 
    if(sender.selected) 
    { 
    // is123selected=YES; 
    //[self dummy]; 

    [self.ObjKeyLayout.btn123Key setTitle:@"ABC" forState:UIControlStateNormal]; 
    //[self.ObjKeyLayout.btnCapKey setBackgroundImage:[UIImage imageNamed:@"key.png"] forState:UIControlStateNormal]; 
    ABCselect=YES; 
    [self UpparCase:(UIButton*)sender]; 

    int i=0; 
    // int j=0; 

    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 

     [key setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; 
     NSLog(@"\n\n123isSelected\nI-%i\tArrayCharKey.Count:-%i",i,(int)self.ObjKeyLayout.ArryCharKey.count); 
     if(isPortrait) 
     { 
      NSLog(@"\n\n123isSelected\nI-%i\tArrayCharKey.Count:-%i\nArraySpecialImageKey.Count-%i\n",i,(int)self.ObjKeyLayout.ArryCharKey.count,(int)arrspecialImageKey.count); 
      [key setBackgroundImage:[UIImage imageNamed:[arrspecialImageKey objectAtIndex:i]] forState:UIControlStateNormal]; 




     } 
     else{ 

      [key setBackgroundImage:[UIImage imageNamed:[arrSpecialIpad objectAtIndex:i]] forState:UIControlStateNormal]; 

     } 

     [key setTitle:[NumKey objectAtIndex:i] forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
     i++; 
    } 
    makeshift=NO; 
} 
else 
{ABCselect=NO; 
    [self.ObjKeyLayout.btn123Key setTitle:@"123" forState:UIControlStateNormal]; 
      select123=YES; 
    [self UpparCase:(UIButton*)sender]; 



    int i=0; 
    for(UIButton *key in self.ObjKeyLayout.ArryCharKey) 
    { 


     [key setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; 


     if(isPortrait) 
     { 
      [key setBackgroundImage:[UIImage imageNamed:[arrKeyImages objectAtIndex:i]] forState:UIControlStateNormal]; 
     } 
     else 
     { 


      [key setBackgroundImage:[UIImage imageNamed:[keyIpad objectAtIndex:i]] forState:UIControlStateNormal]; 
     } 
     ; 

     NSString *uppercaseString = [arrAlphabet objectAtIndex:i]; 

     [key setTitle:uppercaseString forState:UIControlStateNormal]; 

     [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
     i++; 
     //is123selected=NO; 
     } 
    } 
    [self.ObjKeyLayout.btnCapKey setSelected: NO]; 

    } 
+1

evet, büyük harfler için iyi bir mantık. –

2

Sen NumKey Şimdi numerical

NSArray *NumKey; 

NSArray *arrAlphabet; 

için iki o dizi alphabetical diğeri diğer atın:

NumKey=[[NSArray alloc]initWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"0", @"-", @"/", @":", @";", @"(", @")", @"$", @"&", @"@", @"\"", @".", @",", @"?", @"!",@"'",@"^", nil]; 

ve arrAlphabet:

arrAlphabet = [[NSArray alloc]initWithObjects:@"Q", @"W", @"E", @"R", @"T", @"Y", @"U", @"I", @"O", @"P", @"A", @"S", @"D", @"F", @"G", @"H", @"J", @"K", @"L", @"Z", @"X", @"C", @"V", @"B",@"N",@"M", nil]; 

IBOutlet anahtarında 123 veya ABC.

Etkinliği aşağıdaki gibi programsal olarak ekleme. 123ABC

- (IBAction)action123:(UIButton*)sender 
{ 

    if([self.keybard.btnNumeric.titleLabel.text isEqualToString:@"123"]) 
    { 
     [self.keybard.btnCapital setTitle:@"#+=" forState:UIControlStateNormal]; 

     [self.keybard.btnNumeric setTitle:@"ABC" forState:UIControlStateNormal]; 
     int i=0; 
     for(UIButton *key in self.keybard.keyArray) 
     { 
      key.layer.cornerRadius = 6.0; 

      [key setTitle:[NumKey objectAtIndex:i] forState:UIControlStateNormal]; 

      [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
      i++; 
     } 
    } 
    else 
    { 
     [self.keybard.btnCapital setTitle:@"⬆️" forState:UIControlStateNormal]; 

     [self.keybard.btnNumeric setTitle:@"123" forState:UIControlStateNormal]; 

     int i=0; 
     for(UIButton *key in self.keybard.keyArray) 
     { 

      strFirstCap = @"0"; 

      NSString *uppercaseString = [arrAlphabet objectAtIndex:i]; 

      [key setTitle:[uppercaseString lowercaseString] forState:UIControlStateNormal]; 

      [key addTarget:self action:@selector(pressKey:) forControlEvents:UIControlEventTouchUpInside]; 
      i++; 
     } 

    } 

} 

123 için ABC veya değiştirmek için

[self.keybard.btnNumeric addTarget:self action:@selector(action123:) forControlEvents:UIControlEventTouchUpInside]; 

Yöntem çıkışı:

ben de tuşların görüntüleri ayarlamak çünkü bu yolla ilgili bir sorunum belirledik enter image description here

+0

. özel karakter hakkında bilmek istiyorum. 123 tuşunu tıklattığınızda kapağın düğmesinin bulunduğu özel karakter tuşunu tıklattığınızda ve özel karakterin yerine $, euro, pound vb. ve ABC'yi tıklattığınızda tekrar Caps tuşu görünür. Lütfen resimde kontrol edin. –

+0

Özel karakter düğmesine tıkladığınızda ne olur? –

+0

aynı giriş, bir dizi sembolden oluşur. –