कैसे दिखाने के लिए "हो गया" iPhone संख्या पैड पर बटन

वोट
208

कोई हो गया संख्या पैड पर बटन है। एक उपयोगकर्ता एक पाठ क्षेत्र में संख्यात्मक जानकारी दर्ज करने के खत्म करते हैं, तो मैं कैसे संख्या पैड गायब कर सकते हैं?

मैं डिफ़ॉल्ट कीबोर्ड का उपयोग करके एक पूर्ण बटन मिल सकता है, लेकिन फिर उन इनपुट संख्या के क्रम में संख्यात्मक कुंजियों करने के लिए स्विच करने के लिए होगा। वहाँ संख्या पैड पर एक पूर्ण बटन को दिखाने के लिए कोई तरीका है?

25/02/2009 को 03:45
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


21 जवाब

वोट
321

एक और समाधान। बिल्कुल सही अगर वहाँ स्क्रीन पर अन्य गैर संख्या पैड पाठ क्षेत्र हैं।

inputAccessoryView

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    numberToolbar.barStyle = UIBarStyleBlackTranslucent;
    numberToolbar.items = @[[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],
                         [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                         [[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)]];
    [numberToolbar sizeToFit];
    numberTextField.inputAccessoryView = numberToolbar;
}

-(void)cancelNumberPad{
    [numberTextField resignFirstResponder];
    numberTextField.text = @"";
}

-(void)doneWithNumberPad{
    NSString *numberFromTheKeyboard = numberTextField.text;
    [numberTextField resignFirstResponder];
}
08/07/2012 को 10:26
का स्रोत उपयोगकर्ता

वोट
37

यहाँ स्विफ्ट के लिए Luda के जवाब के लिए एक अनुकूलन है:

अपने UIViewController उपवर्ग पुट की घोषणा में

let numberToolbar: UIToolbar = UIToolbar()

ViewDidLoad में डाल:

    numberToolbar.barStyle = UIBarStyle.BlackTranslucent
    numberToolbar.items=[
        UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Bordered, target: self, action: "hoopla"),
        UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil),
        UIBarButtonItem(title: "Apply", style: UIBarButtonItemStyle.Bordered, target: self, action: "boopla")
    ]

    numberToolbar.sizeToFit()

    textField.inputAccessoryView = numberToolbar //do it for every relevant textfield if there are more than one 

और कार्यों गड़बड़ और गड़बड़ (अन्य नामों का चयन करने के लिए स्वतंत्र महसूस, बस तदनुसार viewDidLoad में चयनकर्ता नाम बदलने जोड़ने

func boopla () {
    textField.resignFirstResponder()
}

func hoopla () {
    textField.text=""
    textField.resignFirstResponder()
}
24/02/2015 को 22:24
का स्रोत उपयोगकर्ता

वोट
14

चाल मैं प्रयोग किया जाता देखा गया है एक कस्टम पारदर्शी बटन पूरे दृश्य के आकार का बनाने के लिए है और फिर उसके क्लिक विधि में, है पाठ क्षेत्र पहले प्रत्युत्तर इस्तीफा देने। तो उपयोगकर्ता क्षेत्र के बाहर कहीं भी क्लिक करें कीपैड खारिज करने के लिए कर सकते हैं।

25/02/2009 को 05:07
का स्रोत उपयोगकर्ता

वोट
11

में समाधान UIKeyboardTypeNumberPad और लापता वापस कुंजी अच्छा काम करता है लेकिन तभी स्क्रीन पर कोई अन्य गैर संख्या पैड पाठ क्षेत्र हैं।

मुझे लगता है कि कोड लिया और यह एक UIViewController है कि आप केवल संख्या पैड काम करने के लिए कर सकते हैं उपवर्ग में बदल गया। आप उपरोक्त लिंक से प्रतीक प्राप्त करने की आवश्यकता होगी।

NumberPadViewController.h:

#import <UIKit/UIKit.h>

@interface NumberPadViewController : UIViewController {
    UIImage *numberPadDoneImageNormal;
    UIImage *numberPadDoneImageHighlighted;
    UIButton *numberPadDoneButton;
}

@property (nonatomic, retain) UIImage *numberPadDoneImageNormal;
@property (nonatomic, retain) UIImage *numberPadDoneImageHighlighted;
@property (nonatomic, retain) UIButton *numberPadDoneButton;

- (IBAction)numberPadDoneButton:(id)sender;

@end

और NumberPadViewController.m:

#import "NumberPadViewController.h"

@implementation NumberPadViewController

@synthesize numberPadDoneImageNormal;
@synthesize numberPadDoneImageHighlighted;
@synthesize numberPadDoneButton;

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
    if ([super initWithNibName:nibName bundle:nibBundle] == nil)
        return nil;
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.0) {
        self.numberPadDoneImageNormal = [UIImage imageNamed:@"DoneUp3.png"];
        self.numberPadDoneImageHighlighted = [UIImage imageNamed:@"DoneDown3.png"];
    } else {        
        self.numberPadDoneImageNormal = [UIImage imageNamed:@"DoneUp.png"];
        self.numberPadDoneImageHighlighted = [UIImage imageNamed:@"DoneDown.png"];
    }        
    return self;
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    // Add listener for keyboard display events
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                    selector:@selector(keyboardDidShow:) 
                                                     name:UIKeyboardDidShowNotification 
                                                   object:nil];     
    } else {
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(keyboardWillShow:) 
                                                     name:UIKeyboardWillShowNotification 
                                                   object:nil];
    }

    // Add listener for all text fields starting to be edited
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(textFieldDidBeginEditing:)
                                                 name:UITextFieldTextDidBeginEditingNotification 
                                               object:nil];
}

- (void)viewWillDisappear:(BOOL)animated {
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
        [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                        name:UIKeyboardDidShowNotification 
                                                      object:nil];      
    } else {
        [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                        name:UIKeyboardWillShowNotification 
                                                      object:nil];
    }
    [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                    name:UITextFieldTextDidBeginEditingNotification 
                                                  object:nil];
    [super viewWillDisappear:animated];
}

- (UIView *)findFirstResponderUnder:(UIView *)root {
    if (root.isFirstResponder)
        return root;    
    for (UIView *subView in root.subviews) {
        UIView *firstResponder = [self findFirstResponderUnder:subView];        
        if (firstResponder != nil)
            return firstResponder;
    }
    return nil;
}

- (UITextField *)findFirstResponderTextField {
    UIResponder *firstResponder = [self findFirstResponderUnder:[self.view window]];
    if (![firstResponder isKindOfClass:[UITextField class]])
        return nil;
    return (UITextField *)firstResponder;
}

- (void)updateKeyboardButtonFor:(UITextField *)textField {

    // Remove any previous button
    [self.numberPadDoneButton removeFromSuperview];
    self.numberPadDoneButton = nil;

    // Does the text field use a number pad?
    if (textField.keyboardType != UIKeyboardTypeNumberPad)
        return;

    // If there's no keyboard yet, don't do anything
    if ([[[UIApplication sharedApplication] windows] count] < 2)
        return;
    UIWindow *keyboardWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];

    // Create new custom button
    self.numberPadDoneButton = [UIButton buttonWithType:UIButtonTypeCustom];
    self.numberPadDoneButton.frame = CGRectMake(0, 163, 106, 53);
    self.numberPadDoneButton.adjustsImageWhenHighlighted = FALSE;
    [self.numberPadDoneButton setImage:self.numberPadDoneImageNormal forState:UIControlStateNormal];
    [self.numberPadDoneButton setImage:self.numberPadDoneImageHighlighted forState:UIControlStateHighlighted];
    [self.numberPadDoneButton addTarget:self action:@selector(numberPadDoneButton:) forControlEvents:UIControlEventTouchUpInside];

    // Locate keyboard view and add button
    NSString *keyboardPrefix = [[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2 ? @"<UIPeripheralHost" : @"<UIKeyboard";
    for (UIView *subView in keyboardWindow.subviews) {
        if ([[subView description] hasPrefix:keyboardPrefix]) {
            [subView addSubview:self.numberPadDoneButton];
            [self.numberPadDoneButton addTarget:self action:@selector(numberPadDoneButton:) forControlEvents:UIControlEventTouchUpInside];
            break;
        }
    }
}

- (void)textFieldDidBeginEditing:(NSNotification *)note {
    [self updateKeyboardButtonFor:[note object]];
}

- (void)keyboardWillShow:(NSNotification *)note {
    [self updateKeyboardButtonFor:[self findFirstResponderTextField]];
}

- (void)keyboardDidShow:(NSNotification *)note {
    [self updateKeyboardButtonFor:[self findFirstResponderTextField]];
}

- (IBAction)numberPadDoneButton:(id)sender {
    UITextField *textField = [self findFirstResponderTextField];
    [textField resignFirstResponder];
}

- (void)dealloc {
    [numberPadDoneImageNormal release];
    [numberPadDoneImageHighlighted release];
    [numberPadDoneButton release];
    [super dealloc];
}

@end

का आनंद लें।

05/08/2010 को 21:16
का स्रोत उपयोगकर्ता

वोट
9

नीचे निम्न परिवर्तन के साथ Luda के जवाब की पूरी तरह मरम्मत है:

  • गौण दृश्य स्वचालित रूप से आवेदन फ्रेम की चौड़ाई के आकार है

  • पदावनत निरंतर UIBarButtonItemStyleBorderedसे बचा जाता है

  • "पूर्ण" बटन एक के रूप में instantiated है UIBarButtonSystemItemDone

वर्तमान में "पूर्ण" बटन गौण दृश्य में केंद्रित है। आप उचित पक्ष पर अंतरिक्ष हटा कर बाईं या दाईं ओर पर यह स्थित कर सकते हैं।

मैं एक "रद्द करें" बटन नहीं दिखाए हैं क्योंकि डिफ़ॉल्ट कुंजीपटल एक या तो नहीं है। आप एक "रद्द करें" बटन चाहते हैं, तो मेरा सुझाव है कि आप एक के रूप में यह दृष्टांत UIBarButtonSystemItemCancelऔर क्या आप वाकई अपने पाठ क्षेत्र में मूल मूल्य को त्यागकर नहीं कर रहे हैं कि। "रद्द करें" व्यवहार Luda का जवाब है, जो एक खाली स्ट्रिंग के साथ मूल्य अधिलेखित कर देता है में लागू किया, आप क्या चाहते हैं नहीं हो सकता।

- (void)viewDidLoad {
  [super viewDidLoad];
  float appWidth = CGRectGetWidth([UIScreen mainScreen].applicationFrame);
  UIToolbar *accessoryView = [[UIToolbar alloc]
                              initWithFrame:CGRectMake(0, 0, appWidth, 0.1 * appWidth)];
  UIBarButtonItem *space = [[UIBarButtonItem alloc]
                            initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                            target:nil
                            action:nil];
  UIBarButtonItem *done = [[UIBarButtonItem alloc]
                           initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                           target:self
                           action:@selector(selectDoneButton)];
  accessoryView.items = @[space, done, space];
  self.valueField.inputAccessoryView = accessoryView;
}

- (void)selectDoneButton {
  [self.valueField resignFirstResponder];
}

गौण विचारों निर्माण के बारे में अधिक जानकारी के लिए, पर एप्पल दस्तावेज़ देखें डेटा इनपुट के लिए कस्टम दृश्य । आप शायद पर संदर्भ पृष्ठों से परामर्श करना चाहते हैं UIToolbar और UIBarButtonItem के साथ-साथ।

16/07/2015 को 10:16
का स्रोत उपयोगकर्ता

वोट
6

एक बहुत आसान समाधान

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [super touchesBegan:touches withEvent:event];

    [textViewInstance1 resignFirstResponder];
    [textViewInstance2 resignFirstResponder];
    [textField resignFirstResponder];
}
04/08/2011 को 12:01
का स्रोत उपयोगकर्ता

वोट
6

यहाँ सबसे हाल ही में कोड है। बस अपने ViewController में #import "UIViewController + NumPadReturn.h" शामिल हैं।

यहाँ ज है

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface UIViewController (NumPadReturn)



@end

और उन्हें

#import "UIViewController+NumPadReturn.h"


@implementation UIViewController (NumPadReturn)

-(void) viewDidLoad{
    // add observer for the respective notifications (depending on the os version)
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(keyboardDidShow:) 
                                                     name:UIKeyboardDidShowNotification 
                                                   object:nil];     
    } else {
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(keyboardWillShow:) 
                                                     name:UIKeyboardWillShowNotification 
                                                   object:nil];
    }

}


- (void)keyboardWillShow:(NSNotification *)note {
    // if clause is just an additional precaution, you could also dismiss it
    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 3.2) {
        [self addButtonToKeyboard];
    }
}

- (void)keyboardDidShow:(NSNotification *)note {
    // if clause is just an additional precaution, you could also dismiss it
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
        [self addButtonToKeyboard];
    }
}

- (void)addButtonToKeyboard {
    // create custom button
    UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
    doneButton.frame = CGRectMake(0, 163, 106, 53);
    doneButton.adjustsImageWhenHighlighted = NO;
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.0) {
        [doneButton setImage:[UIImage imageNamed:@"DoneUp3.png"] forState:UIControlStateNormal];
        [doneButton setImage:[UIImage imageNamed:@"DoneDown3.png"] forState:UIControlStateHighlighted];
    } else {        
        [doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
        [doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
    }
    [doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
    // locate keyboard view
    UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
    UIView* keyboard;
    for(int i=0; i<[tempWindow.subviews count]; i++) {
        keyboard = [tempWindow.subviews objectAtIndex:i];
        // keyboard found, add the button
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
            if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
                [keyboard addSubview:doneButton];
        } else {
            if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
                [keyboard addSubview:doneButton];
        }
    }
}

- (void)doneButton:(id)sender {
    NSLog(@"doneButton");
    [self.view endEditing:TRUE];
}



@end
04/12/2010 को 21:57
का स्रोत उपयोगकर्ता

वोट
5

यह मंच पोस्ट कुंजीपटल पर अपने कस्टम दृश्य जोड़ने के लिए UIKeyboard अनुकूलित करने के लिए कैसे करें।

25/02/2009 को 05:48
का स्रोत उपयोगकर्ता

वोट
3

स्विफ्ट 3.0 एक अलग स्वाद, कुछ पिछले जवाब के कुछ हिस्सों का उपयोग करते हुए।

func addToolbarToNumberPad()
{
    let numberPadToolbar: UIToolbar = UIToolbar()

    numberPadToolbar.isTranslucent = true
    numberPadToolbar.items=[
        UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(self.cancelAction)),
        UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil),
        UIBarButtonItem(title: "Custom", style: .done, target: self, action: #selector(self.customAction)),
        UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(self.doneAction)),
    ]

    numberPadToolbar.sizeToFit()

    textField.inputAccessoryView = numberPadToolbar
}

func cancelAction()
{
    textField.resignFirstResponder()
}

func customAction()
{
    textField.resignFirstResponder()
}

func doneAction()
{
    textField.resignFirstResponder()
}

override func viewDidLoad()
{
    super.viewDidLoad()

    self.addToolbarToNumberPad()
}
11/09/2017 को 11:41
का स्रोत उपयोगकर्ता

वोट
3

एक स्विफ्ट 3 समाधान एक एक्सटेंशन का उपयोग। आदर्श साबित होगा आप कई सांख्यिक है UITextFieldआपके एप्लिकेशन में वस्तुओं के रूप में यह प्रत्येक के लिए तय करने के लिए, लचीलापन प्रदान करता है UITextField, चाहे एक कस्टम क्रिया जब प्रदर्शन करने के लिए हो गया या रद्द करें टैप किया गया है।

यहाँ छवि विवरण दर्ज

//
//  UITextField+DoneCancelToolbar.swift
//

import UIKit

extension UITextField {
    func addDoneCancelToolbar(onDone: (target: Any, action: Selector)? = nil, onCancel: (target: Any, action: Selector)? = nil) {     
        let onCancel = onCancel ?? (target: self, action: #selector(cancelButtonTapped))
        let onDone = onDone ?? (target: self, action: #selector(doneButtonTapped))

        let toolbar: UIToolbar = UIToolbar()
        toolbar.barStyle = .default
        toolbar.items = [
            UIBarButtonItem(title: "Cancel", style: .plain, target: onCancel.target, action: onCancel.action),
            UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil),
            UIBarButtonItem(title: "Done", style: .done, target: onDone.target, action: onDone.action)
        ]
        toolbar.sizeToFit()

        self.inputAccessoryView = toolbar
    }

    // Default actions:  
    func doneButtonTapped() { self.resignFirstResponder() }
    func cancelButtonTapped() { self.resignFirstResponder() }
}

डिफ़ॉल्ट क्रियाओं का उपयोग उपयोग के उदाहरण:

//
// MyViewController.swift
//

@IBOutlet weak var myNumericTextField: UITextField! {
    didSet { myNumericTextField?.addDoneCancelToolbar() }
}

एक कस्टम का उपयोग कर उपयोग के उदाहरण हो गया कार्रवाई:

//
// MyViewController.swift
//

@IBOutlet weak var myNumericTextField: UITextField! {
    didSet { 
        myNumericTextField?.addDoneCancelToolbar(onDone: (target: self, action: #selector(doneButtonTappedForMyNumericTextField))) 
    }
}

func doneButtonTappedForMyNumericTextField() { 
    print("Done"); 
    myNumericTextField.resignFirstResponder() 
}
19/08/2017 को 11:40
का स्रोत उपयोगकर्ता

वोट
2

मैंने पाया @ user1258240 का जवाब दिया है कि यह एक स्थापित करने के रूप में सरल नहीं है बहुत संक्षिप्त होना करने के लिए returnKeyTypeसंपत्ति।

बस इस के लिए मेरे अपने "फिर से प्रयोग करने योग्य" दृष्टिकोण योगदान करने के लिए चाहता था:

func SetDoneToolbar(field:UITextField) {
    let doneToolbar:UIToolbar = UIToolbar()

    doneToolbar.items=[
        UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: self, action: nil),
        UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(ViewController.dismissKeyboard))
    ]

    doneToolbar.sizeToFit()
    field.inputAccessoryView = doneToolbar
}

override func viewDidLoad() {
    super.viewDidLoad()

    SetDoneToolbar(field: UITextField_1)
    SetDoneToolbar(field: UITextField_2)
    SetDoneToolbar(field: UITextField_3)
    SetDoneToolbar(field: UITextField_N)
}
04/11/2016 को 05:34
का स्रोत उपयोगकर्ता

वोट
2

आप एक से अधिक संख्यात्मक फ़ील्ड हैं, तो मैं उपवर्गीकरण UITextField एक NumericTextField कि हमेशा एक बटन के साथ किया एक संख्यात्मक कुंजीपटल प्रदर्शित करता है बनाने के लिए सुझाव देते हैं। फिर, बस इंटरफ़ेस बिल्डर में इस वर्ग के साथ अपने संख्यात्मक फ़ील्ड सहयोगी और आप अपने दृश्य नियंत्रकों में से किसी में कोई अतिरिक्त कोड की जरूरत नहीं होगी। निम्नलिखित स्विफ्ट 3.0 वर्ग है कि मैं Xcode 8.0 में उपयोग कर रहा हूँ है।

class NumericTextField: UITextField {
   let numericKbdToolbar = UIToolbar()

    // MARK: Initilization
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.initialize()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.initialize()
    }

    // Sets up the input accessory view with a Done button that closes the keyboard
    func initialize()
    {
        self.keyboardType = UIKeyboardType.numberPad

        numericKbdToolbar.barStyle = UIBarStyle.default
        let space = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
        let callback = #selector(NumericTextField.finishedEditing)
        let donebutton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.done, target: self, action: callback)
        numericKbdToolbar.setItems([space, donebutton], animated: false)
        numericKbdToolbar.sizeToFit()
        self.inputAccessoryView = numericKbdToolbar
    }

    // MARK: On Finished Editing Function
    func finishedEditing()
    {
        self.resignFirstResponder()
    }
}
02/10/2016 को 13:07
का स्रोत उपयोगकर्ता

वोट
2

हम भी कर सकते हैं "उपयोगकर्ता कहीं और छुआ" भी सरल समाधान है, तो हम सिर्फ संपादन समाप्त करने के लिए हमारे विचार नियंत्रक का दृष्टिकोण बता:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
 { 
      [super touchesBegan:touches withEvent:event];

      [self.view endEditing:YES]; //YES ignores any textfield refusal to resign
 }

... यह सोचते हैं "कहीं छू खारिज कुंजीपटल" है कि रूप में अच्छी तरह देखने पर किसी भी अन्य संपादन योग्य क्षेत्रों के लिए व्यवहार वांछित है।

06/05/2015 को 23:46
का स्रोत उपयोगकर्ता

वोट
2

यदि आप पहले से जानते हैं तो नंबरों की संख्या दर्ज किए जाने की (जैसे एक 4 अंकों वाला पिन) आप मेरा उत्तर के अनुसार इस समान प्रश्न के 4 कुंजी दबाव के बाद स्वत: खारिज कर सकता है,:

संख्या पैड खारिज

इस मामले में एक अतिरिक्त किया बटन के लिए कोई ज़रूरत नहीं।

16/05/2013 को 14:50
का स्रोत उपयोगकर्ता

वोट
2

मैं ब्रायन का समाधान संशोधित इतना है कि यह कीबोर्ड है कि एक ही दृश्य में प्रकट हो सकते हैं और अन्य प्रकार के साथ अच्छी तरह अदा कर सकता है, एक छोटे से अधिक मजबूत किया जाना है। यह यहाँ वर्णित है:

आईओएस numpad पर एक किया बनाएं बटन UIKeyboard

मैं इसे यहाँ समझाने की कोशिश करते हैं, लेकिन इसमें से अधिकांश कि को देखने के लिए आसानी से फिट नहीं हैं कोड है

04/10/2012 को 08:38
का स्रोत उपयोगकर्ता

वोट
2

यहाँ सबसे सरल समाधान मैं सामने आने वाले है। मैं आईओएस 5 विकास किताब शुरू से ही यह सीखा है।

मान लिया जाये कि संख्या क्षेत्र कहा जाता है numberField

  1. में ViewController, निम्न विधि जोड़ें:

    -(IBAction)closeKeyboard:(id)sender;
    
  2. में ViewController.m, निम्न कोड जोड़ें:

    -(IBAction)closeKeyboard:(id)sender
    {
    
         [numberField resignFirstResponder];
    
    }
    
  3. पर वापस जाएँ nibफ़ाइल।

  4. ओपन Utilitiesपैन।
  5. ओपन Identity inspectorके तहत Utilitiesपैन।
  6. पर क्लिक करें View(निब फ़ाइल में) एक बार। सुनिश्चित करें कि आप ध्यान में रखते हुए कोई भी आइटम पर क्लिक किया नहीं किया है। स्पष्टीकरण के लिए, आप के तहत UIView देखना चाहिए Classमें Identity inspector
  7. UIControl को UIView से वर्ग को परिवर्तित करें।
  8. ओपन Connection Inspector
  9. क्लिक करें और खींचें Touch Downऔर पर तीर छोड़ File Ownerआइकन। (FYI ... फ़ाइल मालिक आइकन के बाईं पर प्रदर्शित होता है Viewऔर पीले रंग की फ्रेम के साथ एक खोखले घन के रूप में प्रकट होता है।)
  10. विधि का चयन करें: closeKeyboard
  11. कार्यक्रम चलाएं।

अब जब आप की पृष्ठभूमि पर कहीं भी क्लिक View, आप कीबोर्ड खारिज करने के लिए सक्षम होना चाहिए।

उम्मीद है कि यह आप अपनी समस्या को हल मदद करता है। :-)

12/09/2012 को 16:07
का स्रोत उपयोगकर्ता

वोट
2

सबसे सरल तरीका है:

बनाएं कस्टम पारदर्शी बटन और नीचे छोड़ दिया कोने, जो एक ही होगा में रखें CGSizeमें खाली जगह के रूप में UIKeyboardTypeNumberPad। टॉगल (दिखाएँ / छिपाएँ) पाठ फ़ील्ड पर इस बटन को becomeFirstResponderक्रमश: बटन पर क्लिक।

26/06/2012 को 12:44
का स्रोत उपयोगकर्ता

वोट
2

मैं iOS के लिए एक समाधान का वर्णन 4.2+ यहाँ लेकिन कुंजीपटल प्रकट होता है के बाद खारिज बटन में fades। यह या तो भयानक है, लेकिन आदर्श नहीं नहीं है।

समाधान सवाल ऊपर लिंक में वर्णित बटन, मैं जहां फीका को खारिज करने और खड़ी बटन विस्थापित उपस्थिति है कि कीपैड और बटन एक साथ खारिज कर रहे हैं प्रदान करने के लिए करने के लिए एक और अधिक सुरुचिपूर्ण भ्रम भी शामिल है।

23/04/2011 को 22:28
का स्रोत उपयोगकर्ता

वोट
1

स्विफ्ट 2.2 के लिए मैं इस का उपयोग

func addDoneButtonOnKeyboard() {
    let doneToolbar: UIToolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.bounds.size.width, 50))

    let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
    let done: UIBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: self, action: #selector(DetailViewController.finishDecimalKeypad))

    var items: [UIBarButtonItem]? = [UIBarButtonItem]()
    items?.append(flexSpace)
    items?.append(done)

    doneToolbar.items = items
    doneToolbar.sizeToFit()
    self.productPrice.inputAccessoryView=doneToolbar
}

func finishDecimalKeypad() {
    self.productPrice?.resignFirstResponder()
}
04/05/2016 को 08:23
का स्रोत उपयोगकर्ता

वोट
0

स्विफ्ट 2.2 / मैं Dx_ के जवाब का इस्तेमाल किया। हालांकि, मैं सभी कीबोर्ड पर इस कार्यक्षमता चाहता था। तो मेरी आधार वर्ग में मैं कोड डाल:

func addDoneButtonForTextFields(views: [UIView]) {
    for view in views {
        if let textField = view as? UITextField {
            let doneToolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.bounds.size.width, 50))

            let flexSpace = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
            let done = UIBarButtonItem(title: "Done", style: .Done, target: self, action: #selector(dismissKeyboard))

            var items = [UIBarButtonItem]()
            items.append(flexSpace)
            items.append(done)

            doneToolbar.items = items
            doneToolbar.sizeToFit()

            textField.inputAccessoryView = doneToolbar
        } else {
            addDoneButtonForTextFields(view.subviews)
        }
    }
}

func dismissKeyboard() {
    dismissKeyboardForTextFields(self.view.subviews)
}

func dismissKeyboardForTextFields(views: [UIView]) {
    for view in views {
        if let textField = view as? UITextField {
            textField.resignFirstResponder()
        } else {
            dismissKeyboardForTextFields(view.subviews)
        }
    }
}

तो बस viewDidLoad में self.view.subviews पर addDoneButtonForTextFields फोन (या willDisplayCell अगर एक तालिका दृश्य का उपयोग करके) सभी कीबोर्ड के लिए पूर्ण बटन जोड़ने के लिए।

23/08/2016 को 17:09
का स्रोत उपयोगकर्ता

वोट
0

3 पंक्ति में कुंजीपटल दृश्य खोजने और किया बटन जोड़ने के बारे में सभी उन कार्यान्वयन (क्यों button.y = 163 बी / सी कीबोर्ड की ऊंचाई 216 है) नाजुक होते हैं क्योंकि आईओएस दृश्य पदानुक्रम बदल रहता है। इसके बाद के संस्करण कोड के उदाहरण से कोई भी के लिए iOS9 के लिए काम करते हैं।

मैं, लगता है कि यह, और अधिक सिर्फ सर्वोच्च दृश्य खोजने के लिए सुरक्षित है [[[UIApplication sharedApplication] विंडोज़] lastObject] द्वारा, और बस बटन यह के निचले बाएं कोने, doneButton.frame = CGRectMake (0 में जोड़ने SCREEN_HEIGHT-53, 106 , 53); // पोर्ट्रेट मोड

07/12/2015 को 09:36
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more