2013-02-02 113 views
12

如何讓NSTextField真的單行?make nstextfield單行

我以編程方式創建了一個文本字段。當按下返回鍵時,所有文本都被選中。但我仍然可以粘貼多行文字。而當我按下右箭頭或向下箭頭時,它會滾動到下一行。

如果我使用IB並設置「使用單行模式」,但沒有找到正確的方法以編程方式進行設置,則不存在這些問題。

+0

IB做了很多神奇的默認設置的,有時你可以檢查廈門國際銀行,看看有什麼設置鍵值對 –

+1

@GradyPlayer呀確實如此,問題是我希望以編程方式設置。 – Jensen

回答

5

這對我的作品時以編程方式創建控件:

[myTextField.cell setWraps:NO]; 
[myTextField.cell setScrollable:YES]; 

請記住,要的NSControl的細胞直接訪問已被勸阻,因爲OS X 10.10介紹:

的逐漸棄用NSCell

Mac OS X 10.10向最終棄用邁出了又一步單元格。不鼓勵對控制單元的直接訪問,並且允許其的方法將在隨後的 版本中被正式棄用。各種單元級API已被提升爲各種控制子類,以便提供對重要功能的無細胞訪問。 NSLevelIndicator,NSTextField,NSSearchField,NSSlider, 和NSPathControl都具有用於此目的的新屬性。基於單元的 現在不推薦使用NSTableViews,而應該使用基於視圖的NSTableViews,而應該使用 。基於矩陣的NS瀏覽器也被棄用,以支持基於項目的接口 。

https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/

+1

你知道是否有辦法將文本字段設置爲可滾動而不訪問其單元?在文本字段(而不是單元格)上調用'setUsesSingleLineMode:'不會使其可滾動。 – Dalmazio

+0

那麼?如果不推薦使用,這怎麼辦? –

+0

控制+再次輸入make textfield兩行。 – frank