1

Ich erstelle eine benutzerdefinierte Tastatur, und ich möchte nicht für Landscape-Modus unterstützen. Wenn also ein Benutzer das Gerät in den Querformatmodus dreht, muss sich die Tastatur immer noch im Hochformatmodus befinden. Ich habe die folgenden Methoden versucht:Deaktivieren der Drehung der benutzerdefinierten Tastatur in IOS

-(BOOL)shouldAutorotate { 
    return NO; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return UIInterfaceOrientationPortrait; 
} 

- (UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

und

-(void)viewDidLoad{ 
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPotrait]; 
[[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 
} 

Aber keine der Methoden funktioniert. Die einzige Methode, die beim Drehen des Geräts ausgelöst wird, ist dies:

-(void)viewWillTransitionToSize:(CGSize)size 
     withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 

Hier bekomme ich die aktuelle Ansicht Größe nach der Drehung. Aber wie halte ich die Rotation an? Jede Hilfe wird geschätzt.

+0

Ist das, was Sie suchen: http://stackoverflow.com/questions/6941849/disable-orientation-for-keyboard-in-iphone – Ariel

+0

@Ariel: Das habe ich schon probiert. Funktioniert nicht. – Poles

+0

Ich mache auch eine benutzerdefinierte Tastatur und verwende automatische Layouts, um den Hoch- und Querformat-Modus beizubehalten. Ich habe den gleichen Fall wie deiner. Verwenden Sie Auto-Layouts oder deaktivieren Sie das automatische Layout für jetzt? – Ariel

Antwort

1

Wenn Sie eine benutzerdefinierte Tastatur für Ihre App selbst erstellen, dann sollte es kontrollierbar sein.

Idealerweise wird die Ausrichtung von der letzten Hierarchie oder der aktuell sichtbaren Ansicht Controller der App übernommen.

Wenn Sie jedoch eine Drittanbieter-Tastaturanwendung erstellen, wird die benutzerdefinierte Tastatur als App in andere Apps eingeblendet, wobei die Ausrichtung immer noch von der App übernommen wird, die sich derzeit im Schlüsselfenster befindet. Ich denke, dass die benutzerdefinierte Tastatur nicht auf eine bestimmte Ausrichtung beschränkt werden kann, so dass sich der Benutzer bei der Verwendung aller Apps mit dieser benutzerdefinierten Tastatur bequem fühlt.

0

Könnten Sie bitte versuchen Sie das gleiche auf viewDidAppear

-(void)viewDidAppear:(BOOL)animated{ 
    NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPotrait]; 
[[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 
} 
+0

Ich habe versucht, aber es funktioniert nicht für benutzerdefinierte Tastatur Viewcontroller – Poles