В Finder я обнаружил, что кнопка отмены исчезает, когда NSSearchfield получает фокус в первый раз, но когда я ввожу что-то в поле поиска, кнопка отмены присутствует все время, пока я не нажму на нее. Я также вручную создаю поле nssearchfield и ввожу несколько слов Однако, когда я удаляю слово одно за другим до тех пор, пока ничего не исчезнет, кнопка отмены, наконец, исчезнет. Это похоже на поведение поля nssearch по умолчанию, так как я могу изменить поведение по умолчанию? пожалуйста, помогите, спасибо!
Как изменить поведение кнопки cancel в NSSearchField?
comment
Вам нужно будет создать подклассы.
- person trojanfoe   schedule 30.01.2013
comment
у тебя есть образец кода?
- person gohamgx   schedule 30.01.2013
comment
спасибо, я обыщу это
- person gohamgx   schedule 30.01.2013
comment
Я установил делегата поля поиска и функцию controlTextDidChange:. Я хочу, чтобы кнопка отмены отображалась, когда в поле поиска ничего нет. Но я обнаружил, что кнопка отмены на самом деле является NSButtonCell, и у нее нет функции setHidden. Так что проблема все еще решена. !
- person gohamgx   schedule 31.01.2013
Ответы (1)
Вы можете напрямую получить доступ к кнопке отмены:
Быстрый
let searchField = NSSearchField()
// Change the button:
if let cell = searchField.cell as? NSSearchFieldCell,
let cancelButton = cell.cancelButtonCell {
// Here you can access all properties of a NSButtonCell
}
// Hide the button:
searchField.cell?.cancelButtonCell = nil
Цель C
NSSearchField* searchField = [NSSearchField new]
// Change the button:
NSSearchFieldCell* cell = searchField.cell
NSButtonCell* cancelButton = cell.cancelButtonCell
if (cancelButton) {
// Here you can access all properties of a NSButtonCell
}
// Hide the button:
searchField.cell.cancelButtonCell = nil
person
Ky Leggiero
schedule
13.12.2016
Спасибо за ответ.
- person gohamgx; 20.12.2016
@gohamgx Добро пожаловать! Если это ответило на ваш вопрос, не забудьте поставить галочку слева.
- person Ky Leggiero; 20.12.2016