首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift 4以编程方式引用UITextField

Swift 4以编程方式引用UITextField
EN

Stack Overflow用户
提问于 2017-11-24 19:25:35
回答 2查看 66关注 0票数 0

在Swift中编码相对较新,而且我正在使用我的第一个应用程序,然而,这个问题完全困扰着我,我不知道为什么。

为什么我不能引用InputTextField.text属性?

游乐场形象

代码语言:javascript
运行
复制
//: A UIKit based Playground for presenting user interface

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {

    override func loadView() {
        setupInputView()
    }


    func setupInputView () {
        let InputTextField = UITextField()
        InputTextField.text = "Some Text"


        view.addSubview(InputTextField)

    }

}
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()

print("InputTextField: \(InputTextField.text)")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-24 19:34:11

InputTextField已在函数setupInputView()中声明。它只能在该函数中访问。移动声明

代码语言:javascript
运行
复制
let InputTextField = UITextField() 

在功能之外。然后,它将成为类MyViewController的成员。在该类之外,您可以按以下方式访问

代码语言:javascript
运行
复制
PlaygroundPage.current.liveView.InputTextField

继续之前,先阅读范围和变量声明。

票数 2
EN

Stack Overflow用户

发布于 2017-11-24 20:12:22

代码的问题是,您正在函数中设置textField。因此,textField变量有一个本地作用域,它在myViewController实例中变得不可访问。因此,首先,您必须将textField作为一个全局变量。请看下面的代码片段-

代码语言:javascript
运行
复制
class MyViewController : UIViewController {
    let inputTextField = UITextField()

    override func loadView() {
        inputTextField.text = "some text"
    }
}
let myViewController = MyViewController()
PlaygroundPage.current.liveView = myViewController
print("TextFieldValue: \(myViewController.inputTextField.text!)")

请记住变量命名约定的一件事,它总是以小写字母开头,然后遵循camelCasing。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47479040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档