- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我希望在单击工具栏上的完成按钮后关闭 UIPickerView(滑出 View )。我已将 UIPickerView 链接为 UITextField 的 inputView,并将 UIToolbar 设置为 UIPickerView 的 inputAccessoryView。但是,我调用 resignFirstResponder 的函数不会将 UIPicker 滑出 View 。感谢您提供任何帮助,并提前致谢!
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
// Do any additional setup after loading the view, typically from a nib.
//initialization constants
let pickerView = UIPickerView()
let textField = UITextField()
let pickerData = ["1","2","three"]
override func viewDidLoad() {
//pickerview tool bar
let toolbar = UIToolbar(frame: CGRectMake(0, 0, 320, 44))
var items = [AnyObject]()
//making done button
let doneButton = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: Selector(donePressed()))
items.append(doneButton)
toolbar.barStyle = UIBarStyle.Black
toolbar.setItems(items, animated: true)
//creating textfields with a pickerview
pickerView.delegate = self
pickerView.dataSource = self
pickerView.frame = CGRectMake(0, 0, 500, 300)
textField.inputAccessoryView = toolbar
textField.inputView = pickerView
textField.frame = CGRectMake(200, 55, 100, 35)
textField.backgroundColor = UIColor.blueColor()
//adding objs to viewController
self.view.addSubview(textField)
}
func donePressed() {
resignFirstResponder()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
//MARK: Data Sources UIPickerView
extension ViewController: UIPickerViewDataSource {
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
}
//MARK: Delegates UIPickerView
extension ViewController: UIPickerViewDelegate {
// several optional methods:
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return pickerData[row]
}
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int) {
textField.text = pickerData[row]
}
}
最佳答案
有两个问题:
donePressed
的选择器声明不正确。应该是:
let doneButton = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: "donePressed")
您需要在 textField
上调用 resignFirstResponder()
:
func donePressed() {
textField.resignFirstResponder()
}
如果您有多个文本字段,并且不想在 resignFirstResponder
调用中对文本字段进行硬编码,您可以执行以下操作:
将您的 ViewController
设为 UITextFieldDeletate
:
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate {
在 UITextField
上设置 delegate
属性:
textField.delegate = self
将属性添加到您的 ViewController
以跟踪事件的 UITextField
:
var activeTextField:UITextField?
实现 textFieldDidBeginEditing
并存储事件的 UITextField
:
func textFieldDidBeginEditing(textField: UITextField) { // became first responder
activeTextField = textField
}
在donePressed
中,调用activeTextField
上的resignFirstResponder
:
func donePressed() {
activeTextField?.resignFirstResponder()
}
关于ios - UITextField Swift 中 UIPicker 的 resignFirstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26573157/
有没有办法为 UIPicker 设置默认位置?我的意思是,如果用户可以在 UIPicker 中选择 1 到 100 之间的任何数字,我可以将其设置为自动从 50 开始吗? 最佳答案 您可以像这样使
我有一个UIPickerView,并且点击所选行时不会调用didSelectRow方法。我需要处理这个案子。有什么想法吗? 最佳答案 首先,使类符合 UIGestureRecognizerDelega
SLOT-MACHINE 应用程序还有其他方法吗?这是因为 UIPICKER 方法没有缓慢的动画效果。 最佳答案 这可以使用 CALayer 来完成。动画片。 您的主 slotMachineView
我是 Xcode/Swift 新手,正在处理一项需要帮助的作业。我有一个简单的程序,启动时会显示名称列表。我想从 UITextField 中获取一个新名称,并将其添加到当前所选项目之后的选择器数据中。
我已经对此进行了研究,但只发现了如何将键盘切换为键盘。现在我有一个 UIPicker,它会在点击文本字段时出现。在选择器中有三个选项,第三个是自定义。 What I want to happen is
我想使用我的 uipicker 来初始化十六进制数字的 5 个字符字符串表示形式。所以换句话说,我需要 uipicker 的每个组件显示 0-9、A-F 剂量,有人知道如何做到这一点或者是否可能吗?
我想做一些类似键盘显示/隐藏的事情,所以我想将选择器设置为第一响应者。这可能吗。如果不是,我如何通过单击按钮在 View 中显示/隐藏 UIPicker。在其他主题上,我如何格式化 DatePicke
我一直在开发这个应用程序,它有 3 个 uipickers。我想在每个 uipicker 中实现图像。然而,如下图所示,它只影响一个 uipicker,而不是全部。我想知道如何能够自定义图像 中显示的
我有一个带有 5 个静态单元格的 TableView Controller ,其中一个像这样调用 UIPicker: #pragma mark PickerView DataSource - (NSI
我有一个以编程方式制作的 UIPickerView,但我在界面生成器中制作的所有内容和选择器在我运行该应用程序后都不会显示。在我在 IB 中制作背景(这是一个 UIImage)之前,它起作用了。其他一
我有一个包含两个组件的 UIPicker。第二个组件中的值根据第一个组件选择而变化。 但是,如果我以编程方式设置第一个组件的值,则第二个组件不会更新。 此代码包含在 viewDidLoad() 中:
我有一个 UIPicker,我想保存选择并在选择后隐藏它。我找不到办法做到这一点。我可以在没有“保存”按钮的情况下执行此操作吗?我可以只保存按行的选择吗?目前我按下一个按钮使选择器出现 (picker
我在实现 UIPicker 时遇到了一些问题。当我查看它时,有些行显示为白色/透明。稍微滚动并返回后,该行终于出现了。 截图如下: 第一行保持白色 在第二行上滚动也是如此 行在完全滚动并返回后最终出现
我正在讨论几种模拟“价格合适”类型轮或样式 UIPicker 功能的方法。也就是说,我不需要 UIPicker 插件的整个对话框和配色方案。我只需要能够通过几个图像制作动画来复制轮子的旋转。 举个例子
我有以下问题:我可以更改 uipicker 中各行的文本颜色,但不能更改我想要的特定行的文本颜色,选择器变得很困惑,很多文本标签变成蓝色。 - (UIView *)pickerView:(UIPick
我一直在四处寻找,但无法弄清楚我该如何做以下事情。我有一个 UIPickerView(如图所示)我已经修改以允许我从中选择分钟和秒,但我还想添加像 CountDownTimer UIPickerVie
如何加载带有元组数组的 UIPickerView? 使用以下代码,我只能在 UIPickerView 中看到 Oregon: 9.0。 let myArrayTuple: [(String, Doub
嗨, 我在 View 上添加了 uipicker。我在不同的文本框上显示的 View 开始编辑事件。我想在不同的文本框编辑事件上从不同的数据源填充 uipicker。所以我想刷新或重新加载 uipic
我正在尝试开发一个具有横向模式 UIPicker 的应用程序,占据(几乎)屏幕的整个宽度(具有 5 或 6 个组件)。你能告诉我如何设置 UIPicker 的大小吗?非常感谢您的帮助。 最佳答案 实际
假设我的问题是我希望用户能够通过一个控件选择一定数量的苹果和一定数量的梨。我在与 iOS 捆绑在一起的时钟应用程序的“计时器”部分中看到了选择器,我喜欢它。 我正是想要这个,除了不是三列,我想要两列,
我是一名优秀的程序员,十分优秀!