システムフォントではないuseSingleLineModeをtrueに設定すると、テキストの先頭が切り捨てられます。偽usesSingleLineMode =と非システムフォント、:useSingleLineModeがtrueの場合、NSTextField非システムフォントのコンテンツがクリップされる
- 良い:
私はこれを説明する3非常に簡単なテストケースを作成しました。正常に動作します。
- bad:usesSingleLineMode = trueの非システムフォント。動作しません。
- システム:usesSingleLineMode = trueのシステムフォント。正常に動作します。
新しいココアOSXアプリケーションののviewDidLoad()メソッドに以下を追加します。私は、ストーリーボードにインターフェイスBuilderを使用して同じbad
NSTextFieldを作成する場合は、設定
// Do any additional setup after loading the view.
let good = NSTextField(frame: NSRect(x: 0, y: 0, width: 800, height: 55))
good.usesSingleLineMode = false
good.font = NSFont(name: "HelveticaNeue-UltraLight", size: 24)
good.stringValue = "Good usesSingleLineMode false "
self.view.addSubview(good)
let bad = NSTextField(frame: NSRect(x: 0, y: 100, width: 800, height: 55))
bad.usesSingleLineMode = true
bad.font = NSFont(name: "HelveticaNeue-UltraLight", size: 24)
bad.stringValue = "Bad usesSingleLineMode true"
self.view.addSubview(bad)
let system = NSTextField(frame: NSRect(x: 0, y: 200, width: 800, height: 55))
system.usesSingleLineMode = true
system.font = NSFont.systemFontOfSize(24)
system.stringValue = "Good usesSingleLineMode true, System Font"
self.view.addSubview(system)
IBでフォントを使用し、IBでシングルラインモードを使用するかどうかチェックしてください。しかし、IBの全体像を構築することは実用的ではないため、プログラムで作成したいと考えています。
どうしてですか?私はいくつかの重要な設定を見逃している(私は無駄に多くのNSTextFieldとNSTextFieldCellパラメータを調整しようとした?回避策はありますか?
ストレンジを設定することによってそれを解決し、私が持っていますカスタムフォントのボタンもありますが、 'UsesSingleLineMode = true'を設定するとテキストは通常の場所に残ります – Eric
"シングルラインモードのセルは固定ベースラインレイアウトを使用します。コンテンツのフォントスタイルやサイズに関係なくサイズを制御してください」ソース:[usesSingleLineMode](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSCell_Class/#//apple_ref/occ/ instp/NSCell/usesSingleLineMode) – Willeke
ウィレケ、私はそれを見逃すことができたので、あなたがそれを指摘していただきありがとうございます。しかし、これは明らかに全話ではない。 HelveticaNeue-UltraLightをHelveticaNeue(システムフォントと同じ)に置き換えると、テキストは切り取られます。 NSFont.systemFontOfSize(24)を使用すると、クリッピングが発生しません。また、すべての制御サイズは同一であるため、ベースラインが同一であると結論づけられます。 – drootang