Objective-C добавляет NSButton к моему приложению для iPhone во время выполнения - PullRequest
2 голосов
/ 14 января 2011

Я абсолютно невежественен в этом отношении! Пошаговое объяснение приносит бонусные баллы.

Ответы [ 2 ]

4 голосов
/ 14 января 2011

В iOS у нас есть кнопки UIB (не NSButtons)

Вот как программно создать UIButton:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; //3
[button setFrame:CGRectMake(320, 0, 100,100 )];
[button setTitle:@"PressMe!" forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];//2
[aView addSubview:button]; //1

и:

- (void)buttonPressed:(UIButton *)sender{

    //do something here ;)
    [sender setTitle:@"PressMe!. Again" forState:UIControlStateNormal];


}

1 : если вы находитесь в UIViewController, то aView будет self.view если вы где-то еще, просто передайте представление, которое будет содержать вашу кнопку

2 : самый простой случай такой, но вы можете установить любой объект в качестве цели. Этот объект должен иметь метод, который вы передаете в @selector(...). В противном случае ваше приложение будет зависать при нажатии кнопки.

2 голосов
/ 14 января 2011

Не совсем уверен во всех шагах, чтобы сделать это в коде, но я бы использовал конструктор интерфейса, чтобы создать кнопку там, где вы этого хотите.Затем при загрузке представления сделайте кнопку скрытой в методе viewDidLoad или viewDidAppear.Сделайте кнопку видимой, когда вам нужно.Надеюсь, это поможет.

...