2012-01-17 10 views
7

Estoy usando un popover para mostrar un formulario de vista de tabla que tiene el tamaño de un iPhone (coincide con la aplicación de mi iPhone). Dentro de la mesa tengo un campo de texto que tiene un selector establecido como una vista de entrada. Cuando se usa de esta manera como iPad, el selector se desliza hacia arriba como el teclado del iPad. ¿Hay alguna manera de configurar al selector para que se deslice dentro del popover como lo haría en el iPhone?Picker como entradaview dentro de popover

+0

revise esto .http: //stackoverflow.com/questions/9988165/hide-uipickerview-on-done-button-in-uitableview-solved – hacker

Respuesta

1

No puede hacer esto directamente (como inputView). Pero que sin duda puede utilizar esta obra sencilla en torno a:

  1. Reemplazar su UITextField con UIButton y conectarlo a algún selector (buttonClicked :). Puede utilizar UIButtonTypeCustom para poder diseñarlo para que parezca campo de texto (conjunto de capas de bordeColor, borderWidth, cornerRadius, etc ..)

  2. en -(void)buttonClicked:(id)sender - alternar la misma UIPickerView se usaría como inputView para UITextField reemplazado. Puedes hacer una variable de instancia ordinaria, solo recuerda establecer delegate y dataSource. Adjúntelo a la vista de la raíz (de su show UIViewController en popover) o incluso UIWindow y animarlo dentro o fuera (alternar) dependiendo de si ya se muestra o no.

  3. texto de
  4. botón de actualización (mediante el uso de [button setTitle:<selected_value> forState:UIControlStateNormal]) en UIPickerViewDelegate método: pickerView: didSelect ... atIndex: `- puede ocultar, además, selector de aquí ..

lo he hecho varias veces, siempre funciona en cualquier circunstancia y tiene control completo sobre cómo y dónde se muestra el selector sin involucrar a la cadena UIResponder.

No encontré la mejor solución para este tipo de casos especiales (el teclado del iPad también le gusta manipular popovers - los empuja hacia arriba).

Cuestiones relacionadas