2016-07-01 8 views
3

Как вы добавляете дополнение слева от текста в ячейке текстового поля с помощью swift? Предыдущие ответы предназначены только для UITextField или в Objective C. Чтобы быть понятным, это для NSTextField.NSTextField Padding слева

+0

NSTextField не имеет одинаковых функций-членов, таких как UITextField. – user3225395

+0

@NSNoob Потому что это для OS X? – Desdenova

+0

@Desdenova Точно. Я разрабатываю приложение для macOS. Конечно, было бы больше сходства между ним и развитием iOS! – user3225395

ответ

5

Here является примером того, кто сделал обычай NSTextFieldCell в Objective C.

адаптированные к Swift, который выглядит следующим образом:

import Cocoa 

class PaddedTextField: NSTextFieldCell { 

    @IBInspectable var leftPadding: CGFloat = 10.0 

    override func drawingRectForBounds(rect: NSRect) -> NSRect { 
     let rectInset = NSMakeRect(rect.origin.x + leftPadding, rect.origin.y, rect.size.width - leftPadding, rect.size.height) 
     return super.drawingRectForBounds(rectInset) 
    } 
} 

я добавил отступы как @IBInspectable собственности. Таким образом, вы можете установить его так, как вам нравится в Interface Builder.

Чтобы использовать ваш новый PaddedTextField вы просто перетащить регулярные Text Field вашего XIb файл

Normal Text Field Cell

, а затем изменить класс внутренней TextFieldCell быть PaddedTextField (или то, что вы в конечном итоге вызова вашего класса)

Change class to be PaddedTextField

И вуаля

The final result

Надеюсь, что вам поможет.

+0

Спасибо! Ты мужчина. Работает как шарм. – user3225395

+0

Это работает только в том случае, если цвет фона не установлен или граница не настроена. См. Это: http://stackoverflow.com/questions/37870474/osx-nstextfield-with-layer-background-color-not-working – Neovibrant

 Смежные вопросы

  • Нет связанных вопросов^_^