无法在 Swift 中获取 UITextField 的 .text 属性 - 错误:“实例成员 'textFieldName' 不能用于类型 'ViewController'
Posted
技术标签:
【中文标题】无法在 Swift 中获取 UITextField 的 .text 属性 - 错误:“实例成员 \'textFieldName\' 不能用于类型 \'ViewController\'【英文标题】:Cannot get .text Property of UITextField in Swift -- Error: "Instance member 'textFieldName' cannot be used on type 'ViewController'无法在 Swift 中获取 UITextField 的 .text 属性 - 错误:“实例成员 'textFieldName' 不能用于类型 'ViewController' 【发布时间】:2016-01-23 08:05:41 【问题描述】:我要做的就是从 main.storyboard 上的 UITextField 对象获取文本输入。两个@IBOutlet 对象都显示它们链接到正确的文本字段对象。但是,当我尝试使常量 meenieOneText 采用 meenieOne UITextField 的 .text 属性的值时,我收到错误消息“实例成员 'meenieOne' 不能用于类型 'ViewController'。
我真的很陌生,所以我可能会做一些完全错误的简单事情,但我对此束手无策,因为它看起来对我来说是正确的。
非常感谢任何帮助。
提前致谢!
import UIKit
class ViewController: UIViewController, UITextFieldDelegate
@IBOutlet weak var meenieOne: UITextField!
@IBOutlet weak var meenieTwo: UITextField!
let meenieOneText: String = meenieOne.text
【问题讨论】:
【参考方案1】:试试这个:
var meenieOneText: String = ""
override func viewDidLoad()
super.viewDidLoad()
meenieOneText = meenieOne.text!
您遇到了问题,因为在 ios 中,Storyboard 元素虽然可访问,但在您尝试访问它们的属性时可能尚未初始化(例如,用户看不到它们)。确保元素已初始化的最简单方法是在 viewDidLoad() 之后访问它们。还有其他阶段,例如“viewDidDisappear”等。在此处查看有关 ViewControllers 的 Apple 文档: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/
【讨论】:
非常感谢!这一切都有很多细微差别。那么,如果您不介意,我将如何在不使用 viewDidLoad 方法的情况下初始化文本字段? 据我所知,在视图加载之前您无法访问文本字段。只是文本不存在。如果您有一些需要的重要数据,最好将这些数据保存在变量中(例如 let text: String = "I should be in the text field"),然后将其传递给文本字段视图加载。也许您可以详细说明您的情况,以便我们可以获取有关您要实现的目标的更多信息。【参考方案2】:您不能在课堂上直接使用UITextField
的属性。在任何函数中编写相同的代码。它的工作正常。
【讨论】:
以上是关于无法在 Swift 中获取 UITextField 的 .text 属性 - 错误:“实例成员 'textFieldName' 不能用于类型 'ViewController'的主要内容,如果未能解决你的问题,请参考以下文章
Swift——UITextField 没有显示键盘,我无法编辑它
Swift 3:TPKeyboardAvoidingScrollView 在 UITableViewCell 中的一个 UITextField 上无法正常工作
Swift UITextField adjustFontSizeToFitWidth 无法正常运行