2010-11-17 11 views
8

Siyah klavye elde etmenin bir yolu var mı? Varsayılan olan mavimsi. Ve Uyarı stili bir yarı saydam siyahtır. Klavyenin siyah olması mümkünse merak ediyorum. şeffaf olmayan Veya saydamlık etkisini azaltmak için klavyenin arkasında siyah bir görünüm çizmek zorunda mıyım?UIKeyboard'u (siyah) renklendirebilir miyim? Öyleyse nasıl?

cevap

12

Kısa cevap HAYIR vardır. Görüntüleyebileceğiniz yalnızca iki klavye normal ve uyarı stili klavyelerdir.

etrafında kesmek ui klavye almak ve onu bileþimini değiştirmek için yolu vardır. Bunu yapacağınız gibi yapmamanızı tavsiye etmem. 1) muhtemelen uygulamanızı uygulama mağazasından reddedin ve 2) muhtemelen bir sonraki iOS revizyonu geldiğinde kırın.

uygulama için çalışması gerektiğini klavyenin arkasında siyah veya beyaz görünümü koyarak gibi görünüyor. Bu durumda, klavyenin altında siyah görüntüyü canlandırmanın bir yolu için here'a bakmanızı tavsiye ederim.

[textView setKeyboardAppearance:UIKeyboardAppearanceAlert]; 
[textView setKeyboardAppearance:UIKeyboardAppearanceDefault]; 
4

Ben belirttiği gibi. boyamaya değiştirmek için çekinmeyin UIKeyboard:

-(NSArray*)subviewsOfView:(UIView*)view withType:(NSString*)type{ 
NSString *prefix = [NSString stringWithFormat:@"<%@",type]; 
NSMutableArray *subviewArray = [NSMutableArray array]; 
for (UIView *subview in view.subviews) { 
    NSArray *tempArray = [self subviewsOfView:subview withType:type]; 
    for (UIView *view in tempArray) { 
     [subviewArray addObject:view]; 
    } 
} 
if ([[view description]hasPrefix:prefix]) { 
    [subviewArray addObject:view]; 
} 
return [NSArray arrayWithArray:subviewArray]; 
} 

-(void)removeKeyboardBackground{ 
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) { 
     for (UIView *keyboard in [keyboardWindow subviews]) { 
      for (UIView *view in [self subviewsOfView:keyboard withType:@"UIKBBackgroundView"]) { 
       view.hidden=YES; 
      } 
     } 
    } 
} 

Eğer UIKeyboardDidShowNotification için NSNotification aldıktan sonra sadece [self removeKeyboardBackground] diyoruz. Arka plan görünümü ile ne isterseniz yapın, ne yapmak isterseniz view.hidden=YES;'u değiştirin.

4
İşte

bunu gizleyerek UIKeyboard arka planı kaldırmak için kodunuz: sadece bu iki değerden birini kullanabilirsiniz yukarıda

İlgili konular