我有一个textview,当我按完后,textview开始一个新行。
我已经实现了这些方法并添加了所有代理
jQuery(document).ready(function() {
function sfmenuToggle() {
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" )
.addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" )
.removeClass( "sf-navbar sf-menu" );
}
}
// on window resize
$(window).resize(function(){
sfmenuToggle();
});
// on page load
sfmenuToggle();
});
我将键盘返回键设置为在属性检查器中完成。 我希望键盘上的完成键可以让第一响应者辞职,但它似乎无法正常工作。
@property (nonatomic, strong) IBOutlet UITextView *textField;
-(void)textViewDidEndEditing:(UITextView *)textView //was UITextField
{
[self.textField resignFirstResponder];
}
- (BOOL)textFieldShouldReturn:(UITextView *)textField{
[textField resignFirstResponder];
return YES;
}
如何添加这两个语句以便它们能够正常运行?
答案 0 :(得分:3)
添加委托UITextViewDelegate
@property (nonatomic, strong) IBOutlet UITextView *textField;
在viewDidLoad
中写下这一行textField.delegte = self;
//添加下面的委托方法[代码在Swift中。请找到obj-c方法并编写逻辑,因为我有]
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
if (textField.text.length >= 300) {
return NO;
}
return YES;
}
答案 1 :(得分:2)
转到故事板,然后选择文本字段并设置委托,并在.h文件中确认UITextFieldDelegate协议
希望它有所帮助。