2015-06-01 1 views
1

У меня есть текстовое поле на панели инструментов в нижней части моего представления, которое будет использоваться для размещения комментариев.Доступ к UIBarButtonItem textfield.text с помощью swift

@IBOutlet var commentText: UIBarButtonItem! 

@IBAction func commentButton(sender: AnyObject) { 

    println(commentText.text) // dosent work 
} 

Я пытаюсь получить textfield.text, но я не могу просто сказать commentText.text, потому что это UIBarButtonItem. Я пробовал commentText.target! .text, но это не сработало. Я только начал использовать swift 2 недели назад, поэтому я использую рассказную панель, чтобы помещать предметы, а не программно их составлять.

+0

Где вы UITextField я могу только увидеть UIBarButtonItem? – Icaro

+0

В моей раскадровке у меня есть tableviewController, у которого есть панель инструментов внизу. Я перетащил текстовое поле в панель инструментов, а затем, когда я сделал выход, он сказал, что это UIBarButtonItem, вместо uitextfield –

ответ

0

UITextField - это UIBarButtonItem's customView. Но даже тогда customView будет просто UIView, поэтому вы должны отбросить его, чтобы сообщить компилятору, что это UITextField.

Итак:

println((commentText.customView as! UITextField).text) 
+0

спасибо, это именно то, что мне нужно! –

+0

Вы очень желанны. Это проблема с тем, что вы делаете в интерфейсе Builder (редактор раскадровки): он маскирует то, что вы делаете (с кодовой точки зрения). Нелегко узнать о 'customView' изнутри Interface Builder! – matt