Как я могу подключить метод IBAction к простому виду для события подкраски? - PullRequest
4 голосов
/ 26 мая 2009

Я создал пустой новый проект приложения на основе представления в XCode. Он сгенерировал myProjectViewController и перо для него. В этом кончике для этого контроллера представления есть только одно представление. Я хотел протестировать некоторые элементы обработки событий и создал метод - (IBAction), который будет просто записывать «привет мир», когда я касаюсь представления. Но по какой-то причине IB не дает мне возможности подключиться. Что я там делаю не так? Я также попытался поместить UIView в качестве подпредставления там. Когда я перетаскиваю из этого владельца файла (класс whoose - myProjectViewController, где у меня есть IBAction в заголовке), я даже не упоминаю IBAction. Но это на самом деле должно, верно?

Ответы [ 6 ]

12 голосов
/ 11 апреля 2014

Существует простой способ добиться этого. Перейдите к своему построителю интерфейса вашего класса >> Выберите представление, к которому вы хотите добавить действие >>, затем измените его пользовательский класс с IDENTITY INSPECTOR с UIView на 'UIControl'. Теперь вы можете добавить любой метод IBAction в это представление.

Change class to UIControl

add IBAction event to this view to perform action method

6 голосов
/ 01 июня 2009

IBAction - это просто тег, который вы добавляете в объявление метода, который идентифицирует этот метод в качестве кандидата для подключения к действию элемента управления.

Метод IBAction - это метод, который получает сообщение действия какого-либо другого элемента управления.

UIViews не отправляет никаких действий. UIControls делают. Так что нечего подключать из простого UIView к вашему объекту. Вы можете подключить IBActions только к подклассам UIControl и UIBarButtonItems.

3 голосов
/ 26 мая 2009

Для этого у нас есть методы touchs Beg, touchesMoved и touchEnded.

0 голосов
/ 04 мая 2011

Я думаю, что вы можете использовать метод touchesBegan или touchesEnded, как предложено @lostInTransit. Это правильный способ, вместо того, чтобы делать его в виде кнопки.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

// do something here

}
0 голосов
/ 04 мая 2011

Сделайте ваш взгляд классом UIButton. Это сделает представление подключаемым.

0 голосов
/ 26 мая 2009

IBAction - это методы, предназначенные для получения действия от элемента управления. Они не указывают Интерфейсному Разработчику, что метод является источником действия (которое класс генерирует в ответ на некоторые другие события).

Чтобы подключить пользовательские события из подкласса UIView, см. Мой ответ на связанный вопрос здесь . Вам нужно будет использовать подход делегата / протокола.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...