【问题标题】:How to clear username and password on CocoaLibSpotify logout?如何在 CocoaLibSpotify 注销时清除用户名和密码?
【发布时间】:2012-12-14 15:46:59
【问题描述】:

我正在使用CocoaLibSpotify 库来开发一个使用 Spotify API 的 iOS 应用程序。我已经在我想要的地方得到了它,但是我遇到了一些问题。

当用户触摸我的“注销 Spotify”按钮时,我执行以下代码:

-(IBAction)logoutButtonTouched:(id)sender
{
    // Clear out the user's settings that I am saving.
    NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
    [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

    [[SPSession sharedSession] logout:^(void) {
        SPLoginViewController *controller = [SPLoginViewController loginControllerForSession:[SPSession sharedSession]];
        controller.allowsCancel = NO;
    }];
}

这确实会注销用户并显示SPLoginViewController,但我的问题是,用户名和密码字段仍然包含他们登录时使用的值。当我显示SPLoginViewController 时,有人知道清除这些字段的方法吗?

【问题讨论】:

    标签: objective-c ios spotify cocoalibspotify-2.0


    【解决方案1】:

    此功能不在登录控制器中,这确实是一个错误。

    你可以这样做。请注意,这是非常脆弱的代码,如果登录控制器的任何内部细节发生变化,它将会失败,并且它在未来:

    SPLoginViewController *controller = [SPLoginViewController loginControllerForSession:[SPSession sharedSession]];
    
    id internalLoginViewController = [controller.viewControllers objectAtIndex:0];
    UITextField *loginField = [internalLoginViewController valueForKey:@"usernameField"];
    UITextField *passwordField = [internalLoginViewController valueForKey:@"passwordField"];
    loginField.text = @"";
    passwordField.text = @"";
    

    【讨论】:

    • 谢谢!现在肯定可以!
    猜你喜欢
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多