В настоящее время я разрабатываю приложение для macOS. У меня есть NSTableView
с разными строками. Одна строка состоит из NSTextField
и кнопки. Вы можете ввести идентификатор в текстовое поле, и как только вы нажмете кнопку, данные будут загружены с сервера.Фокусировка NSTextField на NSTableViewCell
Но у меня есть проблема. Я не могу сосредоточиться на управлении текстовым полем. Всякий раз, когда я нажимаю на него, ячейка фокусируется вместо этого, и вроде бы «ест» сообщение.
Когда я нажимаю элемент управления, сообщение получает едят, но когда я «перетаскиваю» текст в элементе управления, я могу сфокусировать его. Я не хочу, чтобы пользователь, чтобы сфокусировать камеру, так что я реализовал следующий обработчик события:
func tableView(tableView: NSTableView, shouldSelectRow row: Int) -> Bool
{
if tableView == self.tableViewSegments
{
if segments[row].id!.integerValue < 0
{
return false
}
}
return true
}
Это предотвращает клетки от фокусируясь, но и текстовое поле, кнопка все еще работает, хотя? Как только я отключу этот метод, я могу сфокусировать ячейку, но не текстовое поле (см. Изображение).
Надеется, что вы можете понять, в чем проблема. Как я могу достичь желаемого поведения?