【问题标题】:UIPickerView as inputView not hiding on iPadUIPickerView 作为 inputView 不隐藏在 iPad 上
【发布时间】:2013-08-14 12:05:41
【问题描述】:

我已在我的应用程序中将UIPickerView 添加为inputViewUITextField。它在 iPhone 上完美运行,但是当我在 iPad 上运行相同的代码时,我的 pickerView 不会在单击 done 按钮时隐藏。
一些代码:

picker = [[UIPickerView alloc] initWithFrame:CGRectZero];
picker.delegate = self;
picker.dataSource = self;
[picker setShowsSelectionIndicator:YES];
self.someInput.inputView = provincePicker;

UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
    initWithBarButtonSystemItem:UIBarButtonSystemItemDone
    target:self action:@selector(inputAccessoryViewDidFinish)];
[pickerToolbar setItems:[NSArray arrayWithObject:doneButton] animated:NO];
self.someInput.inputAccessoryView = pickerToolbar;

我必须更改(添加?)什么才能使选择器消失?

编辑:inputAccessoryViewDidFinish 是我的方法,它只是调用

[self.someInput resignFirstResponder]

【问题讨论】:

  • 是 inputAccessoryViewDidFinish 你的方法吗?
  • 是的,我刚刚更新了添加相关信息的问题
  • 工具栏出现在选择器上好吗?
  • 在我的回答中查看我的编辑
  • 正常显示。我知道我应该避免在这里设置绝对值,但这只是让我的应用程序与 iPad 兼容的开始,我稍后会解决这个问题。

标签: ios ipad uitextfield uipickerview inputview


【解决方案1】:
-(void)inputAccessoryViewDidFinish

{
   [self.someInput resignFirstResponder];
}

编辑: 实施 -disablesAutomaticKeyboardDismissal 并返回 NO。这应该允许键盘关闭。

【讨论】:

  • 我不明白,为什么工具栏应该是UIPickers inputview。此外,xcode 不允许我更改 UIPickers inputView 属性,因为它是只读的。此外,xcode 说,我的 UITextField 没有名为 resignFirstController 的选择器。
【解决方案2】:

您需要使用UIPopOverController 来获得相同的结果。

This 教程可以帮助您入门。

【讨论】:

  • 投反对票的原因?我相信对于 OP 试图实现的功能,UIPopOverController 更合适。
猜你喜欢
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多