2014-11-23 61 views
0

我设置PickView和UIActionSheet工具条中ToolBar具有以关闭UIActionSheet,当我点击的UIBarButtonItem的UIActionSheet一个UIBarButtonItem应予驳回 但我创办,当我点击完成按钮UIActionSheet鉴于仍显示dismissWithClickedButtonIndex在工具栏不起作用IOS 8

@IBOutlet weak var _gradeResign: UITextField! 
override func viewDidLoad() { 

    _gradeResign.resignFirstResponder() 
    self.m_actionSheet = UIActionSheet(title: "", delegate: self, cancelButtonTitle: nil, destructiveButtonTitle:nil,otherButtonTitles:""); 
    self.m_actionSheet.delegate = self; 
    self.m_actionSheet.bounds = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height/3) 
    self.m_actionSheet.actionSheetStyle = UIActionSheetStyle.Default; 
    var pickerDataToolbar = UIToolbar(frame: CGRectMake(0, 0, self.m_actionSheet.frame.width, self.m_actionSheet.frame.height)) 
    pickerDataToolbar.barStyle = UIBarStyle.Default; 
    pickerDataToolbar.sizeToFit(); 
    var barItmes:NSMutableArray = NSMutableArray(); 
    var doneBtn:UIBarButtonItem = UIBarButtonItem(title: "Done", style:UIBarButtonItemStyle.Bordered, target: self, action:Selector("toolBarDoneClick")) 
    barItmes.addObject(doneBtn) 
    var flexSpace:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace,target: self, action: nil) 
    barItmes.addObject(flexSpace) 
    pickerDataToolbar.setItems(barItmes, animated: true) 
    m_actionSheet.addSubview(pickerDataToolbar) 
    gradePickerView = UIPickerView(frame: CGRectMake(0, 44, self.m_actionSheet.bounds.size.width,self.m_actionSheet.bounds.size.height)) 
    gradePickerView.showsSelectionIndicator = true; 
    gradePickerView.dataSource = self; 
    gradePickerView.delegate = self; 
    gradePickerView.selectRow(1, inComponent: 0, animated: true) 
    self.m_actionSheet.addSubview(gradePickerView) 
    self.m_actionSheet.showInView(self.view) 
    self.m_actionSheet.showFromToolbar(pickerDataToolbar); 
    _gradeResign.inputView = self.m_actionSheet; 
} 

func toolBarDoneClick(){ 

    self.m_actionSheet.dismissWithClickedButtonIndex(0, animated: true) 
} 

功能toolBarDoneClick运行电流

+0

你能描述一下你想如何工作吗?例如:“当用户点击文本字段时,弹出一个选择器,他们选择一个值出现在文本字段中,当他们点击完成时,选择器就会消失。” – vacawama 2014-11-23 14:17:33

+0

我不清楚行动表的目的。你为什么使用它? – vacawama 2014-11-23 14:19:06

+0

你好,@ vacawama,这个instace是我想要做的 – 2014-11-24 01:33:23

回答

0

下面是如何建立一个UIPickerView作为对inputView一个一个例子:

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate { 
    // Do any additional setup after loading the view, typically from a nib. 

    //initialization constants 
    let pickerView = UIPickerView() 
    let textField = UITextField() 
    var activeTextField:UITextField? 
    let pickerData = ["apple","pear","banana"] 

    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: "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, 216) 

     textField.inputAccessoryView = toolbar 
     textField.inputView = pickerView 
     textField.frame = CGRectMake(200, 55, 100, 35) 
     textField.backgroundColor = UIColor.blueColor() 
     textField.delegate = self 

     //adding objs to viewController 
     self.view.addSubview(textField) 
    } 

    func textFieldDidBeginEditing(textField: UITextField) { // became first responder 
     activeTextField = textField 
    } 

    func donePressed() { 
     activeTextField?.resignFirstResponder() 
    } 

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
     return 1 
    } 

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return pickerData.count 
    } 
+0

谢谢你的帮助,我已经试过这个代码,但是问题依然存在 – 2014-11-24 12:33:23

+0

在'textField'上调用'resignFirstResponder'应该让选择器消失。 – vacawama 2014-11-24 14:01:08

+0

抱歉,我犯了一个错误,问题已经解决,谢谢 – 2014-11-24 14:57:14