У моего приложения OS X есть NSTableView
с большей высотой строки:
myTableView.rowSizeStyle = .large
Я пытаюсь поместить в него какой-то текст, но обнаружил, что текст, который я вставляю, не может быть вертикально центрирован.
См. код ниже. У меня три столбца, а первые два используют NSTextField
и NSTextView
для ввода некоторого текста. Третий - это кнопка флажка.
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
if (tableColumn?.identifier == "Column1") {
let field = NSTextField()
field.stringValue = "someText"
field.isBordered = false
field.isEditable = false
field.backgroundColor = NSColor.red
return field
} else if (tableColumn?.identifier == "Column2") {
let field = NSTextView()
field.string = "someText"
field.backgroundColor = NSColor.green
return field
} else if (tableColumn?.identifier == "Column3") {
let field = NSButton()
field.setButtonType(NSSwitchButton)
field.title = "check me"
return field
}
return nil
}
Мой код в значительной степени основан на документе Apple: "Создание и настройка ячейки NSTextField".
Вот результат:
Как вы можете видеть, тексты в первых двух столбцах не вертикально центрированы, а флажок автоматически центрируется по вертикали.
При использовании func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?
точно так же, как показал документ Apple, какой правильный способ разместить текст так, чтобы он мог быть вертикально центрирован?
EDIT: По какой-то причине я не использую Interface Builder. Поэтому возникает вопрос о программном программировании пользовательского интерфейса.