我有NSTextField,但我必須顯示的內容不固定,它會動態增長。 有什麼方法可以通過我們可以動態改變大小的簡單方法。 在此先感謝:)如何在NSTextField內容增加時調整NSTextField的尺寸
回答
文本字段的委託需要隨文本更改更新大小。
訣竅是,你必須手動更新stringValue
財產,以避免錯誤:
override func controlTextDidChange(obj: NSNotification) {
guard let field = obj.object as? NSTextField else {
return
}
// re-apply the string value, this is necessary for the text field to correctly calculate it's width
field.stringValue = field.stringValue
// calculate the new dimensions
let maxWidth: CGFloat = 500
let maxHeight: CGFloat = 50
let size = renameField.sizeThatFits(NSSize(width: maxWidth, height: maxHeight))
// apply them
field.frame = NSRect(x: field.frame.origin.x, y: field.frame.origin.y, width: size.width, height: size.height)
}
沒有選項通過Interface Builder進行設置。
但是你可以通過代碼做: 您可以在其中實現
- (void)controlTextDidChange:(NSNotification *)aNotification;
每次委託被調用調整按照上述您的想法控制的NSTextField設定的委託。
另外,這一個。
有傑裏·Krinock上的NSString/NSAttributedString很大的範疇,它允許您根據其寬度,反之亦然計算文本的高度:
http://www.sheepsystems.com/sourceCode/sourceStringGeometrics.html
編輯2016年3月:
現在Autolayout功能可以幫助Mac OS應用程序增加和減少文本字段的大小,甚至NSWindow,因此您可以使用它們,非常容易使用。只需從窗口兩側放入約束,並將約束設置爲(> = desiredMinimumSize)即可完成!
正在編輯文本字段時調整其大小無法正常工作,它似乎將字段置於損壞狀態,無法再正確繪製字段。使文本字段變小几乎可以工作,但增加字號可以完全破解它。 –
@AbhiBeckert:現在即使是IB,你也可以通過Autolayout來實現這一點。我更新了答案。 –
你試過了嗎?我無法使它與測試項目一起工作。你確定你明白這個問題嗎?這個想法是增加現場的寬度以適應用戶輸入的任何內容。 –
如果你只是顯示內容,而不是在文本框中輸入內容,那麼你應該使用一個標籤,它可以在IB中設置爲「尺寸適合內容」。這會使標籤對於內容來說足夠大。
- 1. NSTextField停止調整不可編輯的尺寸
- 2. NSPredicateEditor不調整NSTextField
- 3. 如何讓NSTextField的寬度調整到其內容?
- 4. 如何動態調整NSTextField的大小?
- 5. 如何恢復NSTextField中的舊內容?
- 6. 在NSTextField內追加文本
- 7. 的NSTextField調整大小以適應內容
- 8. 根據內容的新尺寸調整NSWindow的尺寸查看
- 9. 根據字符串值調整NSTextField內容大小
- 10. itext如何重新調整A3尺寸的PDF格式,內容爲A4尺寸
- 11. NSTextField內陰影
- 12. 如何調整div和任何屏幕尺寸的內容?
- 13. NSTextField setStringValue:將字符串附加到NSTextField
- 14. 如何通過編程方式使內容自動調整大小(NSTextField)?
- 15. 將尺寸調整爲小尺寸時頁面內容會變形
- 16. 如何通過iTextsharp重新調整pdf內容的尺寸
- 17. 獲取NSTextField內容的比例
- 18. NSTextField在NSTextField中工作的問題
- 19. 如何將UIWebView內容調整爲特定尺寸?
- 20. 如何在NSTextField中將NSDictonary的內容顯示爲鍵值對?
- 21. 的NSTextField在NSMenuItem
- 22. 如何移動NSTextField
- 23. 如何在NSTextField中添加Cocoa控件?
- 24. NSTextField在不可編輯時自動增加寬度
- 25. 如何在eclipse中增加permgen尺寸
- 26. MacRuby:限制NSTextField爲整數
- 27. HTML-畫布元素增加尺寸,但保持內容尺寸相同
- 28. 帶內置驗證的NSTextField
- 29. 拖動窗口內的NSTextField
- 30. NSTableCellView內NSTextField的寬度
這個問題已經被問了很多次......所以之前posting-首先做一些搜索和研究。 –
是的anoop,有這麼多的解決方案,但都通過代碼。在我的問題中,我問過在界面生成器中是否有任何設置,而不是通過代碼計算和設置。 –
你還沒有提到任何有問題的IB!在IB它不在那裏。 –