Label,Text Field和Combo Box来处理文本

本文介绍了如何在应用程序中使用Text Field和Combo Box来处理文本。Text Field能接受字符串和数字,可通过intValue、floatValue或doubleValue获取值,还提到了Text Field的特殊类型。同时,文章讲解了 Combo Box的基础,包括通过属性检查面板和数据源填充选项列表的方法,并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.使用Text Field

text field可以接受字符串和数字,可以通过下面的属性来获取值:

  • intValue:如果是字符串,则为0,如果浮点数,则去掉小数部分
  • floatValue或doubleValue:如果是字符串,则为0.0
  • stringValue:

除了标准的text field,Xcode也提供其它几种:

  • Text Field with Number Formatter
  • Secure Text Field
  • Search Field
  • Token Field

二.使用Combo Box

一个combo box基于NSComboBox类,可以展示一系列选项,并且允许用户进行输入。有两种方式来填充它的pop-up选项列表:使用属性检查面板或者外部的数据源(data source)

1.使用属性检查面板

代码如下:

AppDelegate.swift文件

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!

    @IBOutlet weak var myCombo: NSComboBox!

    @IBOutlet weak var comboResult: NSTextField!


    func applicationDidFinishLaunching(aNotification: NSNotification) {
    }

    func applicationWillTerminate(aNotification: NSNotification) {
    }

    @IBAction func showResult(sender: AnyObject) {

        comboResult.stringValue=myCombo.stringValue

    }

}

2.外部的数据源(data source)

当combo box需要展示会改变的数据时,数据源是最好的,你需要实现NSComboBoxDataSource协议:

示例代码为:

AppDelegate.swift文件

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate,NSComboBoxDataSource {

    @IBOutlet weak var window: NSWindow!

    @IBOutlet weak var myCombo: NSComboBox!

    @IBOutlet weak var comboResult: NSTextField!

    let myArray=["中国","美国","俄罗斯","德国"]


    func applicationDidFinishLaunching(aNotification: NSNotification) {

        myCombo.usesDataSource=true
        myCombo.dataSource=self


        numberOfItemsInComboBox(myCombo)
        comboBox(myCombo, objectValueForItemAtIndex: 0)
    }

    func numberOfItemsInComboBox(aComboBox: NSComboBox) -> Int {
        return myArray.count
    }

    func comboBox(aComboBox: NSComboBox, objectValueForItemAtIndex index: Int) -> AnyObject {
        return myArray[index]
    }

    func applicationWillTerminate(aNotification: NSNotification) {
    }

    @IBAction func showResult(sender: AnyObject) {

        comboResult.stringValue=myCombo.stringValue

    }

}

效果如图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值