iOSアプリにキーボードが存在するかどうかをプログラムで確認するにはどうすればよいですか?


111

iOSアプリでキーボードの表示状態を確認する必要があります。

疑似コード:

if(keyboardIsPresentOnWindow) {
    //Do action 1
}
else if (keyboardIsNotPresentOnWindow) {
    //Do action 2
}

この状態を確認するにはどうすればよいですか?


なんのアプリ?何語?どのプラットフォーム?私の推測ではiPhoneでしょうか?
Nick Bedford

4
質問を修正しました。ゲームを始めよう!
ロバートハーベイ

おそらくこれ
Peter Wong

回答:


68

…または簡単な方法で:

textFieldを入力すると、それが最初のレスポンダーになり、キーボードが表示されます。キーボードのステータスはで確認でき[myTextField isFirstResponder]ます。が返された場合YES、キーボードはアクティブです。


21
良い解決策ですが、ハードウェアキーボードが使用されている場合は機能しません(iPadでは珍しくありません)。
Andrei Herford 2014

4
これは質問の答えにはなりません。これにより、テキストフィールドが最初のレスポンダーであるかどうかがわかります。複数の子ビューコントローラーを持つビューコントローラーがあり、そのすべてにUITextFieldsが含まれています。このメソッドを使用すると、キーボードが表示されているかどうかを親ビューコントローラーから確認できません。信頼できる唯一の方法は、他の回答で説明されている通知方法を使用することです
TimWhiting

63

drawnonwardのコードは非常に近いですが、UIKitの名前空間と衝突し、使いやすくなる可能性があります。

@interface KeyboardStateListener : NSObject {
    BOOL _isVisible;
}
+ (KeyboardStateListener *)sharedInstance;
@property (nonatomic, readonly, getter=isVisible) BOOL visible;
@end

static KeyboardStateListener *sharedInstance;

@implementation KeyboardStateListener

+ (KeyboardStateListener *)sharedInstance
{
    return sharedInstance;
}

+ (void)load
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    sharedInstance = [[self alloc] init];
    [pool release];
}

- (BOOL)isVisible
{
    return _isVisible;
}

- (void)didShow
{
    _isVisible = YES;
}

- (void)didHide
{
    _isVisible = NO;
}

- (id)init
{
    if ((self = [super init])) {
        NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
        [center addObserver:self selector:@selector(didShow) name:UIKeyboardDidShowNotification object:nil];
        [center addObserver:self selector:@selector(didHide) name:UIKeyboardWillHideNotification object:nil];
    }
    return self;
}

@end

4
独自のプールが必要なのはなぜですか?
Dan Rosenstark、2010

18
+loadObjective-Cランタイムによって呼び出される特別なメソッドです。アプリのバイナリが読み込まれた後、main()関数が入力される前に、クラスごとに呼び出されます。自動解放プールがライブになる保証はありません。
rpetrich 2010

1
MattDiPasquale:+ loadメソッドが削除された場合、sharedInstanceは初期化されません。ランタイムが+ loadメソッドを呼び出したときに自動解放プールがアクティブである保証はないため、自動解放を呼び出す場合は、システム提供のクラスへのすべての呼び出しをラップする必要があります。
rpetrich

3
素敵な答え!私はこれが数年前のものであることを知っていますが、NSAutoreleasePool alloc/ releaseはコードを囲むことで置き換えることができます@autoreleasepool { }
chown

3
おそらくKeyboardStateListenerの割り当て解除で、オブザーバーを削除することを忘れないでください。
SushiGrass Jacob 2013

32

作成UIKeyboardListenerあなたはキーボードが表示されていない知っているとき呼び出すことにより、例えば、[UIKeyboardListener shared]からapplicationDidFinishLaunching

@implementation UIKeyboardListener

+ (UIKeyboardListener) shared {
    static UIKeyboardListener sListener;    
    if ( nil == sListener ) sListener = [[UIKeyboardListener alloc] init];

    return sListener;
}

-(id) init {
    self = [super init];

    if ( self ) {
        NSNotificationCenter        *center = [NSNotificationCenter defaultCenter];
        [center addObserver:self selector:@selector(noticeShowKeyboard:) name:UIKeyboardDidShowNotification object:nil];
        [center addObserver:self selector:@selector(noticeHideKeyboard:) name:UIKeyboardWillHideNotification object:nil];
    }

    return self;
}

-(void) noticeShowKeyboard:(NSNotification *)inNotification {
    _visible = true;
}

-(void) noticeHideKeyboard:(NSNotification *)inNotification {
    _visible = false;
}

-(BOOL) isVisible {
    return _visible;
}

@end

注:+(void)loadこのリスナークラスでinitを呼び出すために使用できます。これにより、任意のプロジェクトにドラッグアンドドロップとして一般的に機能し、2番目のアプリの起動から初期化されるので、どこででも初期化する必要がありません。
Albert Renshaw

30

キーボードについて提供されている通知を使用する必要があると思います。

送信元http : //developer.apple.com/iphone/library/documentation/UIKit/Reference/UITextField_Class/Reference/UITextField.html

キーボード通知

システムがキーボードを表示または非表示にすると、いくつかのキーボード通知が投稿されます。これらの通知には、ビューの移動を伴う計算に使用できるキーボードのサイズなどの情報が含まれています。これらの通知の登録は、キーボードに関するいくつかのタイプの情報を取得する唯一の方法です。システムは、キーボード関連のイベントについて次の通知を配信します。

* UIKeyboardWillShowNotification
* UIKeyboardDidShowNotification
* UIKeyboardWillHideNotification
* UIKeyboardDidHideNotification

これらの通知の詳細については、UIWindow Class Referenceの説明を参照してください。キーボードの表示と非表示を切り替える方法については、「テキストとWeb」を参照してください。


これらの通知を確認しましたが、これらの通知を確認する方法がわかりません。あなたがいくつかの例を投稿することができれば、それは非常に役に立ちます。
Jitendra Singh

2
NSNotificationCenterをご覧ください。興味のある通知を登録する必要があります。アプリケーションが終了したら、登録を解除することを忘れないでください。
ThomasMüller09年

13

Swift 3の実装

    import Foundation
class KeyboardStateListener: NSObject
{
    static let shared = KeyboardStateListener()
    var isVisible = false

    func start() {
        NotificationCenter.default.addObserver(self, selector: #selector(didShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(didHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
    }

    func didShow()
    {
        isVisible = true
    }

    func didHide()
    {
        isVisible = false
    } 
}

1
deinitでオブザーバーを削除することをお勧めします。または、ビューのビューコントローラーが表示されなくなる場合
Juan Boero

3
それはdeinitedすることはありませんので、これはシングルトンである場合deinitを使用してても意味がありません
サイレン

11

ウィンドウサブビュー階層をキーボード表示の指標として使用することはハックです。Appleがその基礎となる実装を変更した場合、これらの答えはすべて失敗します。

正しい方法は、アプリのデリゲート内など、アプリケーション全体でキーボードの表示と非表示の通知を監視することです。

AppDelegate.hで:

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (assign, nonatomic) BOOL keyboardIsShowing;

@end

AppDelegate.m内:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    // Monitor keyboard status application wide
    self.keyboardIsShowing = NO;
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)
                                             name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHidden:)
                                             name:UIKeyboardWillHideNotification object:nil];

    return YES;
}

- (void)keyboardWillShow:(NSNotification*)aNotification
{
    self.keyboardIsShowing = YES;
}

- (void)keyboardWillBeHidden:(NSNotification*)aNotification
{
    self.keyboardIsShowing = NO;
}

次に、以下を使用して確認できます。

BOOL keyboardIsShowing = ((AppDelegate*)[UIApplication sharedApplication].delegate).keyboardIsShowing;

ユーザーがBluetoothまたは外付けキーボードを使用している場合、キーボードの表示/非表示通知は発生しないことに注意してください。


10

拡張機能を追加する

extension UIApplication {
    /// Checks if view hierarchy of application contains `UIRemoteKeyboardWindow` if it does, keyboard is presented
    var isKeyboardPresented: Bool {
        if let keyboardWindowClass = NSClassFromString("UIRemoteKeyboardWindow"),
            self.windows.contains(where: { $0.isKind(of: keyboardWindowClass) }) {
            return true
        } else {
            return false
        }
    }
}

次に、キーボードが存在するかどうかを確認し、

if UIApplication.shared.isKeyboardPresented {
     print("Keyboard presented")
} else { 
     print("Keyboard is not presented")
}

できるguard let keyboardWindowClass = NSClassFromString("UIRemoteKeyboardWindow") else { return false }; return UIApplication.shared.windows.contains(where: { $0.isKind(of: keyboardWindowClass) })
クレイブリッジ

5

これは、Appleがここで公開しているiOS Text Programming Guideからのものです。https//developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

基本的には、ViewDidLoadで「registerForKeyBoardNotifications」を呼び出します。その後、キーボードがアクティブになるたびに、「keyboardWasShown」が呼び出されます。そして、キーボードが消えるたびに、「keyboardWillBeHidden」が呼び出されます。

// Call this method somewhere in your view controller setup code.
- (void)registerForKeyboardNotifications {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHidden:) name:UIKeyboardWillHideNotification object:nil];
}

// Called when the UIKeyboardDidShowNotification is sent.
- (void)keyboardWasShown:(NSNotification*)aNotification {
    NSLog(@"Keyboard is active.");
    NSDictionary* info = [aNotification userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

    UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
    scrollView.contentInset = contentInsets;
    scrollView.scrollIndicatorInsets = contentInsets;

    // If active text field is hidden by keyboard, scroll it so it's visible
    // Your app might not need or want this behavior.
    CGRect aRect = self.view.frame;
    aRect.size.height -= kbSize.height;
    if (!CGRectContainsPoint(aRect, activeField.frame.origin) ) {
        [self.scrollView scrollRectToVisible:activeField.frame animated:YES];
    }
}

// Called when the UIKeyboardWillHideNotification is sent
- (void)keyboardWillBeHidden:(NSNotification*)aNotification {
    NSLog(@"Keyboard is hidden");
    UIEdgeInsets contentInsets = UIEdgeInsetsZero;
    scrollView.contentInset = contentInsets;
    scrollView.scrollIndicatorInsets = contentInsets;
}

5

iOS8では、このソリューションはもちろん機能しません。それは最初にIOS4 / 5のために書かれました。

この解決策を試してください:

- (BOOL) isKeyboardOnScreen 
{
    BOOL isKeyboardShown = NO;

    NSArray *windows = [UIApplication sharedApplication].windows;
    if (windows.count > 1) {
        NSArray *wSubviews =  [windows[1]  subviews];
        if (wSubviews.count) {
            CGRect keyboardFrame = [wSubviews[0] frame];
            CGRect screenFrame = [windows[1] frame];
            if (keyboardFrame.origin.y+keyboardFrame.size.height == screenFrame.size.height) {
                isKeyboardShown = YES;
            }
        }
    }

    return isKeyboardShown;
}

2
複数のウィンドウがキーボードを意味し、キーボードが常に2番目の要素であると仮定することは無効です。
jmah 2014

1
@jmahもちろん、これは普遍的なアプローチではありませんが、膨大な量のアプリケーションケースをカバーしています。Appleはこのケースに役立つAPIを提供していないため、キーボードに関する情報を取得しようとすると、特定のビュー階層が使用されます。
malex 2014

これは、彼らが最初の応答者であれば、その後のいずれかに該当キーボードを返す場合はどのような私のために働いたことは...すべてのビューを通じて、すべてのUITextFieldsやUITextViewのチェックのために反復し、作品はありません他に見えていない
AMD

4

いくつかの観察:

シングルトンオブジェクトの推奨パターンは次のとおりです。dispatch_onceは、クラスがスレッドセーフな方法で一度初期化され、静的変数が外部から見えないようにします。そしてそれは標準のGCDなので、Objective-Cの低レベルの詳細を知る必要はありません。

+ (KeyboardStateListener *)sharedInstance
{
    static KeyboardStateListener* shared;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shared = [[KeyboardStateListener alloc] init];
        // Other initialisations
    });

    return shared;
}

通常、キーボードが表示されているかどうかだけではなく、キーボードの大きさを知りたくありません。キーボードはすべて同じサイズではありません。iPhoneキーボードはiPadキーボードよりも小さいです。その@property (readonly, nonatomic) CGRect keyboardRect;ため、noticeShowKeyboard:メソッドで次のように設定される別のプロパティが必要です。

NSValue* value = notification.userInfo [UIKeyboardFrameEndUserInfoKey];
_keyboardRect = value.CGRectValue;

長方形はUIWindow座標内にあり、画面の回転を考慮しないことに注意してください。したがって、呼び出し元は次の呼び出しによってその長方形を変換します

KeyboardStateListener* listener = [KeyboardStateListener sharedInstance];
CGRect windowRect = listener.keyboardRect;
CGRect viewRect = [myView convertRect:windowRect fromView:self.window];

キーボードが表示されているときにユーザーが画面を回転させると、アプリはキーボードが非表示になっていることを通知され、再び表示されます。表示されている場合、他のビューはまだ回転されていない可能性が高いです。したがって、キーボードの非表示/表示イベントを自分で観察する場合は、通知ではなく、実際に必要なときに座標を変換してください。

ユーザーがキーボードを分割またはドッキング解除した場合、またはハードウェアキーボードを使用した場合、通知には常にキーボードが非表示として表示されます。キーボードをドッキング解除またはマージすると、「キーボードが表示されました」という通知が送信されます。

リスナーはキーボードが非表示になっているときに初期化する必要があります。そうしないと、最初の通知が失われ、キーボードが非表示になっているときにキーボードが非表示になっていると見なされます。

したがって、実際に何が欲しいのかを知ることは非常に重要です。このコードは、キーボードの邪魔にならないものを移動するのに役立ちます(スプリットキーボードまたはドッキングされていないキーボードでは、これはユーザーの責任です)。ユーザーが画面にキーボードを表示できるかどうかはわかりません(分割キーボードの場合)。ユーザーが入力できるかどうか(ハードウェアキーボードがある場合など)はわかりません。アプリ自体が他のウィンドウを作成する場合、他のウィンドウを表示しても機能しません。


iPadのキーボードに関する適切な警告、ありがとう!
JOM

3

迅速な実装:

class KeyboardStateListener: NSObject
{
  static var shared = KeyboardStateListener()
  var isVisible = false

  func start() {
    let nc = NSNotificationCenter.defaultCenter()
    nc.addObserver(self, selector: #selector(didShow), name: UIKeyboardDidShowNotification, object: nil)
    nc.addObserver(self, selector: #selector(didHide), name: UIKeyboardDidHideNotification, object: nil)
  }

  func didShow()
  {
    isVisible = true
  }

  func didHide()
  {
    isVisible = false
  } 
}

swiftは起動時にクラスロードメソッドを実行しないため、アプリの起動時にこのサービスを開始することが重要です。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool
{
  ...    
  KeyboardStateListener.shared.start() 
}

iOS 13、Swift 5.0、この最後のビットを使用すると、クラスロードは必要ないように見えますか?
user3069232

3

これは私の解決策であり、すべてを単一の静的メソッドにカプセル化し、どこでも呼び出して確認できます。

+(BOOL)isKeyboardVisible{
    static id tokenKeyboardWillShow = nil;
    static id tokenKeyboardWillHide = nil;
    static BOOL isKbVisible = NO;
    @synchronized (self) {
        if (tokenKeyboardWillShow == nil){
            tokenKeyboardWillShow = [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillShowNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
                @synchronized (self) {
                    isKbVisible = YES;
                }
            }];
        }

        if (tokenKeyboardWillHide == nil){
            tokenKeyboardWillHide = [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillHideNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
                @synchronized (self) {
                    isKbVisible = NO;
                }
            }];
        }
    }

    return isKbVisible;
}

2

そして、これがSwiftでそれを行う方法です:

 func registerForKeyboardNotifications() {
    NSNotificationCenter.defaultCenter().addObserver(
        self,
        selector: "keyboardWasShown:",
        name: UIKeyboardDidShowNotification,
        object: nil)

    NSNotificationCenter.defaultCenter().addObserver(
        self,
        selector: "keyboardWillBeHidden:",
        name: UIKeyboardWillHideNotification,
        object: nil)
}

func keyboardWasShown(notification: NSNotification) {
    println("Keyboard was shown");
}

func keyboardWillBeHidden(notification: NSNotification) {
    println("Keyboard was dismissed");
}

登録を解除することを忘れないでください:

 override func viewWillDisappear(animated: Bool) {
    NSNotificationCenter.defaultCenter().removeObserver(self,
        name: UIKeyboardDidShowNotification,
        object: nil)

    NSNotificationCenter.defaultCenter().removeObserver(self,
        name: UIKeyboardWillHideNotification,
        object: nil)
}

そして、「Return」ボタンを押したときにキーボードを閉じるには:

class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var yourTextField: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()
    registerForKeyboardNotifications()
    yourTextField.delegate = self
}

func textFieldShouldReturn(textField: UITextField!) -> Bool {
    self.view.endEditing(true);
    return false;
}

}

1

この機能をお試しください

BOOL UIKeyboardIsVisible(){

BOOL keyboardVisible=NO;
// Locate non-UIWindow.
UIWindow *keyboardWindow = nil;
for (UIWindow *testWindow in [[UIApplication sharedApplication] windows]) {
    if (![[testWindow class] isEqual:[UIWindow class]]) {
        keyboardWindow = testWindow;
        break;
    }
}
// Locate UIKeyboard.
for (UIView *possibleKeyboard in [keyboardWindow subviews]) {
    // iOS 4 sticks the UIKeyboard inside a UIPeripheralHostView.
    if ([[possibleKeyboard description] hasPrefix:@"<UIPeripheralHostView"]) {
        keyboardVisible=YES;
    }
    if ([[possibleKeyboard description] hasPrefix:@"<UIKeyboard"]) {
        keyboardVisible=YES;
        break;
    }
}
return keyboardVisible;

}

from:iOS: `UIKeyboard`にアクセスする方法?



1

天気キーボードが表示されることを確認するには、事前定義されたキーボード通知を使用できます。

UIKeyboardDidShowNotification、UIKeyboardDidHideNotification

たとえば、次のコードを使用してキーボード通知を聞くことができます

//キーボードの出現と消失をリッスンします

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(keyboardDidShow:)
                                             name:UIKeyboardDidShowNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardDidHide:)
                                             name:UIKeyboardDidHideNotification
                                           object:nil];

通知を受け取ることができるメソッド

- (void)keyboardDidShow: (NSNotification *) notifyKeyBoardShow{
    // key board is closed
}

- (void)keyboardDidHide: (NSNotification *) notifyKeyBoardHide{
    // key board is opened
}

1

スウィフト4

extension UIViewController {
    func registerKeyboardNotifications() {
        let center = NotificationCenter.default
        center.addObserver(self, selector: #selector(keyboardWillBeShown(note:)), name: Notification.Name.UIKeyboardWillShow, object: nil)
        center.addObserver(self, selector: #selector(keyboardWillBeHidden(note:)), name: Notification.Name.UIKeyboardWillHide, object: nil)
    }

    func removeKeyboardNotifications() {
        NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
        NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)

    }

    @objc
    func keyboardWillBeShown(note: Notification) {}

    @objc
    func keyboardWillBeHidden(note: Notification) {}

}

final class MyViewController: UIViewController {

    // MARK: - Properties
    var isKeyboardVisible = false

    // MARK: - Life Cycle
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        registerKeyboardNotifications()
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        removeKeyboardNotifications()
    }

    // MARK: - Keyboard Handling
    override func keyboardWillBeShown(note: Notification) {
        isKeyboardVisible = true
        let userInfo = note.userInfo
        let keyboardFrame = userInfo?[UIKeyboardFrameEndUserInfoKey] as! CGRect
        let contentInset = UIEdgeInsetsMake(0.0, 0.0, keyboardFrame.height, 0.0)
        tableView.contentInset = contentInset
    }

   override func keyboardWillBeHidden(note: Notification) {
        tableView.contentInset = .zero
        isKeyboardVisible = false
   }

   // MARK: - Test
   fileprivate func test() {
        if isKeyboardVisible { // do something
        }
   }
}

私(Xcode 10.2、Swift4)には非常にうまく機能しますが、なぜこれを支持する人がいないのでしょうか。
infinity_coding7

いいえ、キーボードが以前のView Controllerによってすでに提示されている場合は機能しません。
Ricardo

0

親ビューのサブビューにあるすべてのテキストビュー、テキストフィールド、ラベルを繰り返しチェックして、次のような最初のレスポンダーがあるかどうかを確認できます。

-(BOOL)isKeyboardActiveInView:(UIView *)view {
    for (UIView *anyView in [view subviews]) {
        if ([anyView isKindOfClass:[UITextField class]]) {
            if (((UITextField *)anyView).isFirstResponder) {
                return YES;
            }
        } else if ([anyView isKindOfClass:[UILabel class]]) {
            if (((UILabel *)anyView).isFirstResponder) {
                return YES;
            }
        } else if ([anyView isKindOfClass:[UITextView class]]) {
            if (((UITextView *)anyView).isFirstResponder) {
                return YES;
            }
        } else {
            if ([self isKeyboardActiveInView:anyView]) {
                return YES;
            }
        }
    }
    return NO;
}

子ビューコントローラーがある場合は失敗します
Ricardo

-1

SWIFT 4.2 / SWIFT 5

class Listener {
   public static let shared = Listener()
   var isVisible = false

   // Start this listener if you want to present the toast above the keyboard.
   public func startKeyboardListener() {
      NotificationCenter.default.addObserver(self, selector: #selector(didShow), name: UIResponder.keyboardWillShowNotification, object: nil)
      NotificationCenter.default.addObserver(self, selector: #selector(didHide), name: UIResponder.keyboardWillHideNotification, object: nil)
   }

   @objc func didShow() {
     isVisible = true
   }

    @objc func didHide(){
       isVisible = false
    }
}

-5

これはあなたを助けるかもしれないと思います、

+(BOOL)isKeyBoardInDisplay  {

    BOOL isExists = NO;
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows])   {
        if ([[keyboardWindow description] hasPrefix:@"<UITextEffectsWindow"] == YES) {
            isExists = YES;
        }  
    }

    return isExists;
}

ありがとう

ナヴィーン・シャン


1
iOS 6では、作品のみがまだ表示されていません!キーボードが一度表示されると、機能しなくなります。
James Laurenstin 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.