我有UIViewController
(UITabBarController
内),其中包含UITextField
。将此ViewController推送到导航堆栈时,我必须使用UITextField
进行一些工作:
我将String放在UITextField
中并处理它们(再次,这一切都发生在ViewController加载时(当前在viewDidLoad()
方法内))。为了处理它们,我需要计算String在UITextField
内占据的Rectangle。
var pos1 = tagTextField.positionFromPosition(tagTextField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: 0)
var pos2 = tagTextField.positionFromPosition(tagTextField.endOfDocument, inDirection: UITextLayoutDirection.Right, offset:0)
var rectForButton = tagTextField.firstRectForRange(tagTextField.textRangeFromPosition(pos1, toPosition: pos2))
这正是我的问题。在加载视图时执行此操作时,tagTextField包含文本,但不显示文本,因此rectForButton没有任何宽度。
我对此的看法是,我必须稍后再进行此操作(我尝试了viewWillAppear()
,viewDidAppear()
等,但没有任何效果。)
任何人都知道如何解决这个问题?基本上总结一下,我需要一个在UIViewController发生之后调用的方法。
不确定这是否有意义,但我使用Swift和XCode 6(两者的最新版本)
由于
编辑:
显然tagTextField.beginningOfDocument为nil,而tagTextField不是nil。有人想知道如何解决这个问题吗?
答案 0 :(得分:2)
您的文本字段是否来自界面构建器?您可以在viewDidLayoutSubviews函数中尝试它。