【swift】macOS應(yīng)用中如何創(chuàng)建一個(gè)label

博主: 漫畫(huà)無(wú)聊的冰塊

Label是開(kāi)發(fā)中相當(dāng)常見(jiàn)的一種UI控件赴邻。在iOS和tvOS中,這個(gè)控件都叫 UILabel 啡捶。有個(gè)很奇怪的點(diǎn)姥敛,在macOS中沒(méi)有這個(gè)控件,而是用一個(gè) NSTextField 來(lái)代替瞎暑。

按慣例彤敛,我們先簡(jiǎn)單寫(xiě)個(gè)demo對(duì)比一下這兩種寫(xiě)法:

import UIKit

// iOS or tvOS
let label = UILabel()
label.frame = CGRect(origin: .zero, size: CGSize(width: 100, height: 44))
label.text = "My awesome label"
label.backgroundColor = .white
label.sizeToFit()

這里沒(méi)啥好說(shuō)的,初始化label了赌,設(shè)frame墨榄、文案、顏色勿她,自適應(yīng)大小袄秩。一般開(kāi)發(fā)中,我們不用調(diào)用sizeToFit逢并,除非要精確的計(jì)算控件尺寸之剧、位置。我一般都根據(jù)控件優(yōu)先級(jí)設(shè)定約束來(lái)進(jìn)行布局筒狠。

說(shuō)完ios/tvOS平臺(tái)猪狈,我們進(jìn)入重點(diǎn),看看macOS下是如何實(shí)現(xiàn):

import Cocoa

// macOS
let label = NSTextField()
label.frame = CGRect(origin: .zero, size: CGSize(width: 100, height: 44))
label.stringValue = "My awesome label"
label.backgroundColor = .white
label.isBezeled = false
label.isEditable = false
label.sizeToFit()

我們首先創(chuàng)建一個(gè)NSTextField控件并且設(shè)定一個(gè)frame辩恼。然后添加text雇庙,NSTextField沒(méi)有像UILable一樣提供一個(gè)text屬性,而是要設(shè)定一個(gè)stringValue灶伊。stringValue屬性不是NSTextField中聲明的疆前,而是繼承自NSControl中。NSControl還有類(lèi)似的其他屬性聘萨,比如doubleValue竹椒, floatValueintValue等等米辐。這個(gè)最好注意一下胸完,其他繼承自NSControl的類(lèi)也有這些屬性。如果需要從NSTextField中取text翘贮,也要從這個(gè)屬性來(lái)取赊窥。

接下來(lái)是設(shè)定背景顏色,如果你記得NSView實(shí)現(xiàn)的方式狸页,你會(huì)發(fā)現(xiàn)一丟丟細(xì)微的不同锨能。NSView中通過(guò)layer來(lái)設(shè)置CGColor類(lèi)型的顏色。NSTextField中直接聲明了一個(gè)backgroundColor屬性,類(lèi)型為NSColor址遇。并且在NSTextField中熄阻,通過(guò)layer設(shè)置背景顏色是無(wú)效的。

sizeToFit方法是可以讓label展示倔约,但是和我們預(yù)想的有一絲絲的差異秃殉。如果我們不需要外面的框線(xiàn),我們可以設(shè)置isBezeled屬性為false跺株。最后記住复濒,想更像UILable而不是NSTextField,把isEditable屬性設(shè)為false乒省。

以上,Have Fun .

參考鏈接:
How to make a label in macOS

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畦木,一起剝皮案震驚了整個(gè)濱河市袖扛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌十籍,老刑警劉巖蛆封,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異勾栗,居然都是意外死亡惨篱,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)围俘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砸讳,“玉大人,你說(shuō)我怎么就攤上這事界牡〔炯牛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵宿亡,是天一觀(guān)的道長(zhǎng)常遂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)挽荠,這世上最難降的妖魔是什么克胳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮圈匆,結(jié)果婚禮上漠另,老公的妹妹穿的比我還像新娘。我一直安慰自己臭脓,他們只是感情好酗钞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般砚作。 火紅的嫁衣襯著肌膚如雪窘奏。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天葫录,我揣著相機(jī)與錄音着裹,去河邊找鬼。 笑死米同,一個(gè)胖子當(dāng)著我的面吹牛骇扇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播面粮,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼少孝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了熬苍?” 一聲冷哼從身側(cè)響起稍走,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柴底,沒(méi)想到半個(gè)月后婿脸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柄驻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年狐树,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸿脓。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抑钟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出答憔,到底是詐尸還是另有隱情味赃,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布虐拓,位于F島的核電站心俗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蓉驹。R本人自食惡果不足惜城榛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望态兴。 院中可真熱鬧狠持,春花似錦、人聲如沸瞻润。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至正勒,卻和暖如春得院,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背章贞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工祥绞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸭限。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓蜕径,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親败京。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兜喻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344