2013-01-10 52 views
0

我使用以下代码在iPhone键盘显示时从工具栏中删除工具栏。如何删除iPhone的KeyBoard工具栏边框?

- (void) keyboardDidShowNotification:(NSNotification *)aNotification { 

NSArray *array = [[UIApplication sharedApplication] windows]; 

for (UIWindow* wind in array) { 
    for (UIView* currView in wind.subviews) { 
     if ([[currView description] hasPrefix:@"<UIPeripheralHostView"]) { 
      for (UIView* perView in currView.subviews) { 
       if ([[perView description] hasPrefix:@"<UIWebFormAccessory"]) { 
        [perView removeFromSuperview]; 
       } 
      } 

     } 
    } 
} 

}

这是移除工具栏就像我希望,但它仍然留在其上放置工具栏使用时必须1px的边界。我该如何删除它?

此外,这只在iPhone Retina显示器上出现问题。 iPhone 3GS和iPad Retina没有它。

+1

这是一个非常糟糕的做法。你不能直接通过调用UITextField的'inputAccessoryView'方法并将其设置为nil来访问键盘的配件视图吗? –

+0

因为我使用的是UIWebView,所以不需要这样做。 – user1591020

回答

1

似乎是removeFromSuperView中的一个bug。添加工具栏作为输入附件视图时,对于内联编辑的一些采购员,我遇到了同样的问题。调用2x removeFromSuperView会留下边界。 关闭拾取器时使用[self.view endEditing:YES]有助于清理拾取器和附件的附件视图,无边界。也许这可以让你指向正确的方向?