1

我有一个 UITextField,当你点击它时会弹出一个键盘。我已经使用情节提要添加了 UITextField,现在我想在键盘弹出时禁用一个按钮。我怎样才能做到这一点?

禁用按钮:[self.howButton setEnabled:NO]; 但是我应该把它放在哪里?

4

2 回答 2

3

您可以将您的键盘声明添加到notifacticon,当它显示时,然后禁用按钮,当它隐藏时,然后启用按钮

在init中添加观察者

- (void)init
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
}

实现显示和隐藏方法

- (void)keyboardWillHide
{
    [self.howButton setEnabled:YES];
}

- (void)keyboardWillShow
{
    [self.howButton setEnabled:NO];
}

最后删除观察者,当类被释放时

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
于 2013-03-21T08:29:22.073 回答
0

注册 UIKeyboardWillShowNotification

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];

在keyboardWillShow 方法中禁用您的按钮。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];

如果需要,您可以通过注册上述通知重新启用该按钮。

于 2013-03-21T08:29:48.923 回答