2011-07-19 87 views

回答

2

除非您針對iOS的非常舊版本(即早於3.2的版本),否則最好的方法是採取完全不同的方法。

從3.2開始,當視圖成爲第一個響應者時,任何UIResponder(包括所有UIViews)都可以從其inputView屬性返回一個UIView,以顯示該視圖而不是鍵盤。這甚至適用於通常不會成爲第一響應者或根本不顯示鍵盤的視圖。這很簡單:

  1. 設計您的彈出視圖,因爲你會任何其他視圖。
  2. 確保您的小部件視圖從canBecomeFirstResponder返回YES。
  3. 確保您的小部件視圖從inputView返回彈出視圖的實例。

更多詳細資料請參閱the documentation。另外,順便說一句,如果你在iPad上,你應該使用UIPopoverController來顯示一個UIPickerView而不是這些方法。 Apple may actually require this如果您打算在應用程序商店中獲取您的應用程序。

+0

謝謝你的擡頭。我知道我做這件事的方式一定有些奇怪,但是有沒有關於如何做這件事的教程,或者你能提供任何示例代碼? – mrbaker

0

下一個和上一個按鈕實際上是將圖像顯示在工具欄中的segmentedController上。獲取它你必須定義segmentedController和UIToolbar。 H.接下來添加DataSource和UIPickerView然後在viewDidLoad中創建對象並定義它們的屬性。例如:

if (keyboardToolbar == nil) { 
     keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; 
     [keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent]; 


     segControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Anterior", @"Siguiente", nil]]; 
     [segControl setSegmentedControlStyle:UISegmentedControlStyleBar]; 
     [segControl setTintColor:[UIColor blackColor]]; 
     segControl.frame = CGRectMake(5, 7, 150, 33); 
     segControl.momentary = YES; 
     [segControl addTarget:self action:@selector(segSelected:) forControlEvents:UIControlEventValueChanged]; 

     UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

     UIBarButtonItem *aceptar = [[UIBarButtonItem alloc] initWithTitle:@"Hecho" style:UIBarButtonItemStyleDone target:self action:@selector(cerrarTeclado:)]; 

     //aceptar.width = 70.0f; 

     [keyboardToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, aceptar, nil]]; 
     [keyboardToolbar addSubview:segControl]; 
    } 
相關問題