线程1:信号SIGABRT迅速

时间:2019-02-12 00:01:55

标签: swift uitextfielddelegate

我试图将文本居中放置在视图中间,但是收到一个错误。这是我的代码作为参考。

let textbox = UITextField()
    textbox.text = "Hello"
    textbox.sizeToFit()
    textbox.centerXAnchor.constraint(equalTo: textboxView.centerXAnchor).isActive = true
    textbox.centerYAnchor.constraint(equalTo: textboxView.centerYAnchor).isActive = true
    textbox.delegate = self
    self.textboxView.addSubview(textbox)

2 个答案:

答案 0 :(得分:1)

除非一个视图与另一个视图首先相关,否则您不能约束该视图。

您需要先设置子视图,然后再设置约束

let textbox = UITextField()
textbox.text = "Hello"
textbox.translatesAutoresizingMaskIntoConstraints = false
self.textboxView.addSubview(textbox)
textbox.centerXAnchor.constraint(equalTo: textboxView.centerXAnchor).isActive = true
textbox.centerYAnchor.constraint(equalTo: textboxView.centerYAnchor).isActive = true
textbox.delegate = self

答案 1 :(得分:0)

您尚未提供有关视图控制器其余部分的详细信息,因此您可能已经将其添加到其他位置。

但是,在使用自动布局约束时,必须关闭自动遮罩。

private async Task<string> GetAccessToken(string resourceId, string userName, string password)
{
    try
    {
        var authority = ConfigurationManager.AppSettings["ida:AuthorizationLoginUri"] + ConfigurationManager.AppSettings["ida:TenantId"];
        var authContext = new AuthenticationContext(authority);
        var credentials = new UserPasswordCredential(userName, password);
        var authResult = await authContext.AcquireTokenAsync(resourceId, ConfigurationManager.AppSettings["ida:ClientIdNativeClient"], credentials);

        // Get the result
        return authResult.AccessToken;
    }
    catch (Exception ex)
    {
       // TODO: handle the exception
       return;
    }

在设置约束之前,还应该将文本框添加为子视图。