나도 날잡아 많은 외곽진입 high and low, 검색 및 여러 가지 비슷한 질문을 한 적이 없는 것이 좋습니다.
지정할 수 있습니다.
이 솔루션은 특별한 경우의 두 번째 요건을 충족하지 못하고 ( 도구바에 키보드 같은 것이 준수하십시오 키보드 나타나고 숨길지 ):
또한 이 제품은 충족할 경우 특별한 경우에는 제 3 의 요구사항 ( 도구바에 키보드 위에 키보드를 사용할 때 볼 수 있어야 한다 ():
이 솔루션을 통해 다른 문제.
이 솔루션은 운행에서어떠한 애플 지원하기 위한 것으로 이 같은 문제를 해결할 수 있기 때문에 모든 애니메이션을 도구막대 수동으로로 비헤이비어를 단점이 있었다. 하지만 이 솔루션은 맥을 끊고 완전히 4 요구 사항 ( 키보드를 사용할 때 숨겨짐, 도구바에 숙박권 (docked" ";) 보기 하단의 ).
& # 39 는 솔루션을 사용할 수 있는 것 같다 ',' s '하지만' 이레스포네르 린퍼타클레소리비에프 움직이지 않을 수 있도록 '아래' 린퍼타클레소리비에프 경치말이야 짐작이지만요. # 39 m, 코드 청소하십시오 i& 찾고 이를 위해. 하지만 앞서 언급했듯이, 아찔했어 노블, 다른 곳에서 시도_횟수 정교한 가지 요건을 충족하지 못하고.
'& # 39, 나는 내 특정 사건' 의 의미에 대해 추가 쟁점을 루이 아비그라티온콘트로예르 보았으매 사용할 수 있는 것이 아닙니다 "에 대한 이 같은 도구막대 비헤이비어를 루이 아비그라티온콘트로예르 '. 그러나 어떤 목적을 달성하기 위해 기꺼이 I& # 39 m, 일부 수정 소개하십시오 해키 iqn.
난 그냥 표시됩니까 " the"; 솔루션을 출시해 제이슨 포먼 (@threeve). 파악할 수 있는 추가 컨트롤러 (예, 보기입니다 컨트롤러거) '와' 린퍼타클레소리비에프 반품해야 보기입니다 운영까지도 도킹하려면 이동하고 맨 아래에 있는 방식이다. 그냥 작동합니다. # 39 doesn& 보기 위해서는 될 것이라고 보는 계층에 의해, t 정작 필요한 보기입니다 컨트롤러거 삽입됨 자동으로.
편집: 또 다시 구현하십시오 캔베컴퍼스트레스포네르 지원 (최대 제이만 통해 밝힌 것처럼). 너무 레로댕푸트비우스 참조할 수 있습니다.
찾는 사람들을 위한 새로운 버전:
연결하는 도구막대 (& # 39, & # 39 '' 내 경우에는 미투르바;) 켜짐이 데이터베이스에구성원을 보기입니다 컨트롤러입니다. '다음' 킬러 '린퍼타클레소리비에프 오버라이드합니다 캔베컴퍼스트레스포네르 방법 및 오버라이드합니다' 변수. 또 다른 셀f.미투르바실레모프레프롬스페르비예프 () '또는' t forget 추가합니다 don& # 39, xcode 불만이 커질 것으로 보인다.
class ViewController: UIViewController {
@IBOutlet var myToolBar: UIToolbar!
override func canBecomeFirstResponder() -> Bool {
return true
}
override var inputAccessoryView:UIView{
get{
return self.myToolBar
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.myToolBar.removeFromSuperview()
}
}
가져오기의 재단 이킷 임포트합니다
클래스 메사제비스콘트로예르: 스크티스트비스콘트로예르 {
필요한 init (기반 부호화 이데코더: 산고데르!) { 스페리니스 (기반 부호화. 이데코더) } }
이 팀장은 소품 등 극심한 설비투자 추출 유용한 포드.
그래서 아는 이는 확실하지 않지만, 이 경우 기존 로그하고 실로나는 해결됨으로 방관하겠나 afaq afnor apc® 길을 찾았다. I believe there is a 동작할 수 있지만, 내가 만든 버그로 린퍼타클레소리비에프 해키 솔루션이므로 메시지를 운행에서어떠한 app 가. 이 문제를 해결하려면 구현하기 위해 필요한 모든 코드를 제공하는 것 같아요. 시도하시려면 갈 수 있으며, 보다 적합한 블로그 포스트를 작성한 뒤 가까운 미래에 보다 심도 있는 설명과 함께 내 발견사항. 모든 질문에, 알려주세요.
@property(nonatomic,assign)BOOL isFirstKeyboard; //workaround for keyboard bug
@property(nonatomic,assign)BOOL isViewAppear;
@property(nonatomic,strong)ChatBarView *chatView; //custom chat bar view
@property(nonatomic,strong)UIView *footerPadView; //just to add some nice padding
////////////////////////////////////////////////////////////////////////////////////////////////////
//in the view did load
- (void)viewDidLoad
{
//more app specific code...
self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
self.chatView.textView.inputAccessoryView = self.chatView;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
-(void)done
{
self.isFirstKeyboard = YES;
[self.chatView.textView becomeFirstResponder];
}
////////////////////////////////////////////////////////////////////////////////////////////////////
- (void) moveTextViewForKeyboard:(NSNotification*)aNotification up:(BOOL)up
{
if(!self.isViewAppear)
return;
//NSLog(@"keyboard is: %@", up ? @"UP" : @"Down");
if(!up && !self.isFirstKeyboard)
[self performSelector:@selector(done) withObject:nil afterDelay:0.01];
else if(!up & self.isFirstKeyboard)
{
self.isFirstKeyboard = NO;
[self.view addSubview:self.chatView];
CGRect frame = self.chatView.frame;
frame.origin.y = self.view.frame.size.height - self.chatView.frame.size.height;
self.chatView.frame = frame;
}
else
{
NSDictionary* userInfo = [aNotification userInfo];
NSTimeInterval animationDuration;
UIViewAnimationCurve animationCurve;
CGRect keyboardEndFrame;
[[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] getValue:&animationCurve];
[[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] getValue:&animationDuration];
[[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardEndFrame];
// Animate up or down
[UIView beginAnimations:nil context:nil];
if(up)
[UIView setAnimationDuration:0.2];
else
[UIView setAnimationDuration:0.3];
[UIView setAnimationCurve:animationCurve];
CGRect frame = self.footerPadView.frame;
CGRect keyboardFrame = [self.view convertRect:keyboardEndFrame toView:nil];
if (up)
frame.size.height = keyboardFrame.size.height - self.chatView.frame.size.height;
else
frame.size.height = 0;
self.footerPadView.frame = frame;
self.tableView.tableFooterView = self.footerPadView;
[UIView commitAnimations];
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
- (void)keyboardWillShow:(NSNotification *)aNotification {
[self moveTextViewForKeyboard:aNotification up:YES];
}
////////////////////////////////////////////////////////////////////////////////////////////////////
- (void)keyboardWillHide:(NSNotification *)aNotification
{
[self moveTextViewForKeyboard:aNotification up:NO];
}
////////////////////////////////////////////////////////////////////////////////////////////////////