Sorry I am a little bit new on iOS Development , for a project i need to use popup list menu library ( i know iOS support PickerView , ... for the purpose of choosing from a list menu) but i need to use that popup list , so after some search i find this library : https://github.com/kolyvan/kxmenu
Which i have seen the example on that project. I added same as kxmenu Example to my project and it works , but I need a slight change. Instead of clicking on Button (in the example) to open the popup menu , i want whenever user click inside UITextField , would open the popup menu. The buttons are added as subview by this example , but i need to connect an action to the UITextField which is not written programatically (it's not added by adding subview...)
here is the code (of Example) that I really Appreciate if someone tell me what changes do i need to apply to the following code , to make this changes:
instead of using the button , Use UITextfield , I mean when user click on The UITextField it would open the kxmenu popup
please consider that in the kxmenu example , Button are added programatically , but the UITextField that i have is a property.
here is the part of the source code:
//#part 1 {
_btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
_btn1.frame = CGRectMake(5, 5, 100, 50);
[_btn1 setTitle:@"click Me" forState:UIControlStateNormal];
[_btn1 addTarget:self action:@selector(showMenu:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_btn1];
//#part 1 }
- (void) pushMenuItem:(id)sender
{
NSLog(@"%@", sender);
}
//#part 2 {
- (void)showMenu:(UIButton *)sender
//#part 2 } {
NSArray *menuItems =
@[
[KxMenuItem menuItem:@"ACTION MENU 1234456"
image:nil
target:nil
action:NULL],
[KxMenuItem menuItem:@"Reload page"
image:[UIImage imageNamed:@"reload"]
target:self
action:@selector(pushMenuItem:)],
[KxMenuItem menuItem:@"Search"
image:[UIImage imageNamed:@"search_icon"]
target:self
action:@selector(pushMenuItem:)],
];
KxMenuItem *first = menuItems[0];
first.foreColor = [UIColor colorWithRed:47/255.0f green:112/255.0f blue:225/255.0f alpha:1.0];
first.alignment = NSTextAlignmentCenter;
[KxMenu showMenuInView:self.view
fromRect:sender.frame
menuItems:menuItems];
}
With My Slight iOS Knowledge i think these changes might apply (but i have tried that and it won't work with UITextField
[currentTextField addTarget:self action:@selector(showMenu:) forControlEvents:UIControlEventTouchUpInside];
I would appreciate if someone show me by writing some code what changes do i need to apply to above source code for the following purposes. Thanks!
you can use "UITextFieldDelegate", for example:
- ( BOOL )textFieldShouldBeginEditing:( UITextField *)textField
[self taggle];
)
-(void)taggle{
NSArray *menuItems =
@[
[KxMenuItem menuItem:@"开启闪光灯"
image:nil
target:self
action:@selector(clickTorch)],
[KxMenuItem menuItem:@"翻转"
image:nil
target:self
action:@selector(clickCamera)],
[KxMenuItem menuItem:@"美颜"
image:nil
target:self
action:@selector(clickBeautyFace)],
];
[KxMenu showMenuInView:self.view
fromRect:textField.frame // UITextField *textField = [[UITextField alloc] initWithFrame:....] // you can write any frame and change it.
menuItems:menuItems];
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.